Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ActivityManager
- {
- public void Tick(float deltaTime) => Current.Tick(deltaTime);
- public void Change(IActivity activity)
- {
- Current.Exit();
- _activity = activity;
- Current.Enter();
- }
- public void SetContext(object context) => Current.SetContext(context);
- public void Destroy()
- {
- Current.Teardown();
- _activity = null;
- }
- IActivity Current => _activity ?? NoActivity.Instance;
- IActivity _activity;
- }
- public interface IActivity
- {
- void SetContext(object context);
- void Setup();
- void Enter();
- void Tick(float deltaTime);
- void Exit();
- void Teardown();
- }
- class NoActivity : IActivity
- {
- public void SetContext(object context) { }
- public void Setup() { }
- public void Enter() { }
- public void Tick(float deltaTime) { }
- public void Exit() { }
- public void Teardown() { }
- public static NoActivity Instance => _instance ??= new NoActivity();
- static NoActivity _instance;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement