private void OnFinish() { FrameSignal.RemoveListener(OnFrame); LoadingDoneSignal.RemoveListener(OnLoadingDone); Release(); }
public override void Execute() { _loadCalls = new List <LoadCall> { new LoadCall { LoadStatus = LoadStatus.LoadStates, CallSignal = LoadStatesDispatcher, Dependencies = new HashSet <LoadStatus>() }, new LoadCall { LoadStatus = LoadStatus.LoadCities, CallSignal = LoadCitiesDispatcher, Dependencies = new HashSet <LoadStatus> { LoadStatus.LoadStates } }, new LoadCall { LoadStatus = LoadStatus.LoadResources, CallSignal = LoadResourcesDispatcher, Dependencies = new HashSet <LoadStatus>() }, new LoadCall { LoadStatus = LoadStatus.TerrainInitialise, CallSignal = TerrainInitialiseDispatcher, Dependencies = new HashSet <LoadStatus>() }, new LoadCall { LoadStatus = LoadStatus.LoadTerrainHeightmap, CallSignal = LoadTerrainHeightmapDispatcher, Dependencies = new HashSet <LoadStatus> { LoadStatus.TerrainInitialise } } }; FrameSignal.AddListener(OnFrame); LoadingDoneSignal.AddListener(OnLoadingDone); Retain(); }
// Update is called once per frame void Update() { FrameSignal fs = (context as GameContext).injectionBinder.GetInstance <FrameSignal>(); fs.Dispatch(); }