public void MoveSpawn(EffectorBase effector)
    {
        if (GameState.gameManager.gameMode == GameMode.Challenge)
        {
            switch (effector.type)
            {
            case EffectorType.ImpulseEffector:
                impulseButton.Remove();
                break;

            case EffectorType.BouncePad:
                bounceButton.Remove();
                break;

            case EffectorType.Embiggener:
                bigButton.Remove();
                break;

            case EffectorType.Shrinker:
                smallButton.Remove();
                break;

            case EffectorType.TeleporterExit:
            case EffectorType.TeleporterEntrance:
                teleButton.Remove();
                break;

            default:
                break;
            }
        }

        SpawnNew(effector.gameObject);
    }
 public void CancelSpawn(bool speedUp = true)
 {
     if (state != SpawnState.Idle)
     {
         //GameState.gameManager.planningCam.Follow = null;
         CameraLook(null);
         if (GameState.gameManager.controlType == ControlType.RealTime)
         {
             GameState.gameManager.realTimeTarget.RemoveMember(spawning.transform);
         }
         GameObject.Destroy(spawning.gameObject);
         spawning = null;
         state    = SpawnState.Idle;
         if (GameState.gameManager.controlType == ControlType.RealTime && speedUp)
         {
             GameState.gameManager.ResetTimeScale();
         }
     }
 }
    public void FinishSpawn(Transform spawned)
    {
        spawning = null;
        state    = SpawnState.Idle;
        if (GameState.gameManager.controlType == ControlType.RealTime)
        {
            GameState.gameManager.realTimeTarget.RemoveMember(spawned);
            GameState.gameManager.ResetTimeScale();
        }

        if (GameState.gameManager.gameMode == GameMode.Challenge)
        {
            switch (spawned.GetComponent <EffectorBase>().type)
            {
            case EffectorType.ImpulseEffector:
                impulseButton.Spawn();
                break;

            case EffectorType.BouncePad:
                bounceButton.Spawn();
                break;

            case EffectorType.Embiggener:
                bigButton.Spawn();
                break;

            case EffectorType.Shrinker:
                smallButton.Spawn();
                break;

            case EffectorType.TeleporterExit:
                teleButton.Spawn();
                break;

            default:
                break;
            }
        }
        spawned.GetComponentInChildren <EffectorHighlighter>().enabled = true;
    }
 public void SpawnNew(GameObject e)
 {
     CameraLook(e.transform);
     spawning = e.GetComponent <EffectorBase>();
     state    = SpawnState.Placing;
 }