public EveryFrameUpdateManager GetEveryFrameUpdateList(UpdateSourceType sourceType, bool scaledTime) { var managerDescription = FindManagerDescription(_everyFrameUpdateList, sourceType, scaledTime); if (managerDescription == null) { string scaledName = scaledTime ? "Scaled" : "Unscaled"; GameObject go = CreateUpdateSource(sourceType, $"EveryFrame_{scaledName}"); managerDescription = new UpdateManagerDescription { sourceType = sourceType, scaledTime = scaledTime, updateManager = go.GetComponent <UpdateManagerSourceBase>().InitForEveryFrame(scaledTime) }; _everyFrameUpdateList.Add(managerDescription); } return(managerDescription.updateManager as EveryFrameUpdateManager); }
public CountFrameUpdateManager GetCountFrameUpdateList(int count, UpdateSourceType sourceType, bool scaledTime) { if (!_countFrameUpdateLists.TryGetValue(count, out List <UpdateManagerDescription> updateList)) { updateList = new List <UpdateManagerDescription>(); _countFrameUpdateLists.Add(count, updateList); } var managerDescription = FindManagerDescription(_everyFrameUpdateList, sourceType, scaledTime); if (managerDescription == null) { string scaledName = scaledTime ? "Scaled" : "Unscaled"; GameObject go = CreateUpdateSource(sourceType, $"CountFrame_{scaledName}_{count}"); managerDescription = new UpdateManagerDescription { sourceType = sourceType, scaledTime = scaledTime, updateManager = go.GetComponent <UpdateManagerSourceBase>().InitForCountFrame(scaledTime, count) }; updateList.Add(managerDescription); } return(managerDescription.updateManager as CountFrameUpdateManager); }
public TimedUpdateManager GetTimedUpdateList(float time, UpdateSourceType sourceType, bool scaledTime) { if (!_timedUpdateLists.TryGetValue(time, out List <UpdateManagerDescription> updateList)) { updateList = new List <UpdateManagerDescription>(); _timedUpdateLists.Add(time, updateList); } var managerDescription = FindManagerDescription(_everyFrameUpdateList, sourceType, scaledTime); if (managerDescription == null) { string scaledName = scaledTime ? "Scaled" : "Unscaled"; GameObject go = CreateUpdateSource(sourceType, $"Timed_{scaledName}_{time}"); managerDescription = new UpdateManagerDescription { sourceType = sourceType, scaledTime = scaledTime, updateManager = go.GetComponent <UpdateManagerSourceBase>().InitForTimed(scaledTime, time) }; updateList.Add(managerDescription); } return(managerDescription.updateManager as TimedUpdateManager); }