/// <summary> /// Initialization for all event-related things /// </summary> void InitializeEvents() { reachedFinish = new UnitReachedFinish(); deathEvent = new UnitDied(); EventManager.AddTimeChangeListener(GoToTime); EventManager.AddPauseTimeListener(Pause); EventManager.AddReachedFinishInvoker(this); EventManager.AddUnitDeadInvoker(this); }
/// <summary> /// Like SetActive(), but script is responsive to Events /// </summary> void EnableObject(bool state) { enabled = state; transform.GetChild(0).gameObject.SetActive(state); //thisCollider.enabled = paused == state ? state : paused; thisCollider.enabled = state; if (state) { if (reachedFinish == null) { reachedFinish = new UnitReachedFinish(); } if (deathEvent == null) { deathEvent = new UnitDied(); } } if (!state) { deathEvent.Invoke(transform); } }