//Singleton void Awake() { if (singleton != null) { Object.Destroy(singleton); } else { singleton = this; } }
private void OnTriggerEnter(Collider other) { if (other.tag == "Player") { AbstractPowerUp powerUp = null; switch (index) { case Box.Index.DOOR_COLOR_SWITCHER: powerUp = new DoorColorSwitcher(7); break; case Box.Index.PLAYER_COLOR_SWITCHER: powerUp = new PlayerColorSwitcher(7); break; case Box.Index.RAINBOW_COLORS: powerUp = new RainbowColors(5, 4); break; case Box.Index.THUNDER: powerUp = new Thunder(5, 4); break; } PlayerController player = other.gameObject.GetComponent <PlayerController>(); if (powerUp != null) { player.StartCoroutine("HoldTimer", powerUp.HoldTime); } player.CurrentPowerUp = powerUp; other.gameObject.GetComponent <PlayerAudioManager>().PlayPickUpPowerupSound(); Destroy(gameObject); } }