示例#1
0
    void OnStateChanged()
    {
        var isWaiting = false;

        switch (_currentState)
        {
        case TowerState.PLACING:
            mainCamera.Retarget(rows [rows.Count - 1].transform);
            mainCamera.distance = 4;
            ToggleBlocksLock(true);
            blockPlacer.enabled = true;
            break;

        case TowerState.REMOVING:
            mainCamera.Retarget(towerCenter.transform);
            mainCamera.distance = 6;
            blockPlacer.enabled = false;
            ToggleBlocksLock(false);
            break;

        case TowerState.WAITING:
            mainCamera.Retarget(towerCenter.transform);
            mainCamera.distance = 10;
            blockPlacer.enabled = false;
            waitTimer           = 0f;
            isWaiting           = true;
            ToggleBlocksLock(true);
            break;

        case TowerState.FALLING:
            ToggleBlocksLock(true);
            GameManager.instance.State = GameState.OVER;
            break;
        }

        if (StateChanged != null)
        {
            StateChanged(this, new TowerStateChangedEventArgs(State, isWaiting));
        }
    }