public void UnregisterFixedTick(ITickableObject tickable) { if (_fixedTicksHolder.Contains(tickable) == false) { FLog.Warning(CLASS_TYPE.Name, $"{tickable.Name} has not registered for fixed tick but wants to unregister."); return; } _registeredFixedTick.Remove(tickable); _fixedTicksHolder.Remove(tickable); }
public void RegisterFixedTick(ITickableObject tickable) { if (_fixedTicksHolder.Contains(tickable)) { FLog.Warning(CLASS_TYPE.Name, $"{tickable.Name} already registered for fixed tick."); return; } _registeredFixedTick.Add(tickable); _fixedTicksHolder.Add(tickable); }
public void RegisterLateTick(ITickableObject tickable) { if (_lateTicksHolder.Contains(tickable)) { FLog.Warning(CLASS_TYPE.Name, $"{tickable.Name} already registered for late tick."); return; } _registeredLateTicks.Add(tickable); _lateTicksHolder.Add(tickable); }
private void LateUpdate() { for (int i = 0; i < _registeredLateTicks.Count; ++i) { ITickableObject tickable = _registeredLateTicks[i]; if (tickable == null) { continue; } if (this.HasInitialized == false) { continue; } if (tickable is IInitializableObject initializable && initializable.HasInitialized == false) { continue; } if (tickable.CanEverLateTick == false) { continue; } if (HasBeganPlay == false && tickable.CanLateTickBeforePlay == false) { continue; } try { tickable.LateTick(Time.deltaTime); } catch (Exception exception) { FLog.Error(CLASS_TYPE.Name, exception.Message); } InitializePendingObjects(); } }
private void FixedUpdate() { for (int i = 0; i < _registeredFixedTick.Count; ++i) { ITickableObject tickable = _registeredFixedTick[i]; if (tickable == null) { continue; } if (this.HasInitialized == false) { continue; } if (tickable is IInitializableObject initializable && initializable.HasInitialized == false) { continue; } if (tickable.CanEverFixedTick == false) { continue; } if (HasBeganPlay == false && tickable.CanFixedTickBeforePlay == false) { continue; } try { tickable.FixedTick(Time.fixedDeltaTime); } catch (Exception exception) { FLog.Error(CLASS_TYPE.Name, exception.Message); } } }