protected virtual void OnEnable() { var sceneID = this.gameObject.scene.name; if (SceneHistory.First == null || SceneHistory.First.Value != sceneID) { SceneHistory.AddFirst(sceneID); if (SceneHistory.Count > 6) { SceneHistory.RemoveLast(); } } if (Persistence.GetState(this)) { if (m_respawn > 0) { var head = SceneHistory.First.Next; int steps = 0; while (head != null) { if (head.Value == sceneID) { break; } steps++; head = head.Next; } if (steps > m_respawn) { Persistence.SetState(this, false); } else { OnTriggeredBefore.Invoke(); } } else { OnTriggeredBefore.Invoke(); } } }
public override void TriggerState() { Persistence.SetState(this, true); GetComponent <PlayableDirector>().Play(); }
public override void TriggerState() { OnTrigger.Invoke(); Persistence.SetState(this, true); }