public void Die() { State = PhaseBarrierState.OUT; nextFlashTime = Time.time + FlashTime; nextStateChangeTime = Time.time + OutTime; spriteRenderer.enabled = false; rigidbody2D.simulated = false; }
// Update is called once per frame void Update() { if (State != PhaseBarrierState.ACTIVE & Time.time > nextFlashTime) { nextFlashTime = Time.time + FlashTime; spriteRenderer.enabled = !spriteRenderer.enabled; } if (controller.GameState == GameState.RUNNING) { if (Time.time > nextSpriteChangeTime) { nextSpriteChangeTime = Time.time + SpriteChangeTime; if (Random.value < SpriteChangeChance) { RandomSprite(); } } switch (State) { case PhaseBarrierState.IN: if (Time.time > nextStateChangeTime) { spriteRenderer.enabled = true; rigidbody2D.simulated = true; State = PhaseBarrierState.ACTIVE; } break; case PhaseBarrierState.ACTIVE: break; case PhaseBarrierState.OUT: if (Time.time > nextStateChangeTime) { controller.PhaseBarrierList.Remove(gameObject); Destroy(gameObject); } break; } } }