public void activate() { active = true; Vector2 velocity = playerMovement.LastMoveDirection; playerMovement.forceMovement(velocity); Vector2 spawnPos = playerController.SpawnCenter; //Make new rainbow path rainbowPath = objectSpawner.spawnObject <RainbowPathController>( rainbowPathIndex, spawnPos, velocity.normalized ); rainbowPath.abilityID = this.abilityID; rainbowPath.Start(); rainbowPath.startPos = spawnPos; rainbowPath.endPos = spawnPos; rainbowPath.startPos = spawnPos; }
public void deactivate() { active = false; playerMovement.forceMovement(false); if (rainbowPath) { rainbowPath.finish(prevRainbowPath); prevRainbowPath = rainbowPath; rainbowPath = null; prevRainbowPath.onDestroy += (rpc) => { if (rpc == prevRainbowPath) { prevRainbowPath = null; } if (rpc == rainbowPath) { throw new UnityException("I didn't expect this to happen."); } }; } }