/// <summary>
    /// オブジェクトのアクションをコールする
    /// NOTE : プレイヤー側のアクションによって、コールするアクションを分ける
    /// </summary>
    /// <param name="actionType">プレイヤー側のアクション</param>
    void CallObjectAction(PlayerActionType actionType)
    {
        // 一番下のオブジェクトを取得
        Transform bottomObject = towerObjectSpawner.StackedObjects.First();
        // 一番下のオブジェクトの制御クラスを取得
        MoveControllerBase moveController = moveControllerList.MoveControllers[bottomObject.name];

        // タワーが落下中じゃなければ、プレイヤーからのアクションを受け付ける
        if (!objectFallingController.IsFalling)
        {
            // 一番下のオブジェクトをリストから削除
            towerObjectSpawner.RemoveTowerBottomObject();

            // パンチを受けたとき
            if (actionType == PlayerActionType.Punch)
            {
                // 制御クラスのコールバックを呼ぶ
                moveController.OnPlayerPunched();

                // モチだったら
                if (bottomObject.tag == TagName.Mochi)
                {
                    // フィーバーゲージを加算
                    feverTimeActiveGaugeController.AddGauge();
                }
            }
            // 救助されたとき
            else if (actionType == PlayerActionType.Rescue)
            {
                // 制御クラスのコールバックを呼ぶ
                moveController.OnPlayerRescued();

                // うさぎだったら
                if (bottomObject.tag == TagName.Rabbit)
                {
                    // タイムをプラス
                    timer.TimePlus();

                    // フィーバーゲージを加算
                    feverTimeActiveGaugeController.AddGauge();
                }
            }
            // 最後の大技を受けたとき
            else
            {
                // 制御クラスのコールバックを呼ぶ
                moveController.OnPlayerSpecialArts();
            }
        }
    }
Example #2
0
 /// <summary>
 /// 更新
 /// </summary>
 void Update()
 {
     if (rabbitEndureGauge.GetIsCrushed())
     {
         // 一番下のオブジェクトを取得
         Transform bottomObject = towerObjectSpawner.StackedObjects.First();
         // 取得したオブジェクトがウサギだったら
         if (bottomObject.tag == TagName.Rabbit)
         {
             // 一番下のオブジェクトをリストから削除
             towerObjectSpawner.RemoveTowerBottomObject();
             // オブジェクトの制御クラスを取得
             MoveControllerBase moveController = moveControllerList.MoveControllers[bottomObject.name];
             // コールバック関数を呼ぶ
             moveController.OnCrashed();
         }
     }
 }
Example #3
0
    /// <summary>
    /// 開始
    /// </summary>
    void Start()
    {
        // モチの全ての制御クラスを取得
        foreach (Transform mochi in mochiSpawnPool)
        {
            // モチにアタッチしている制御クラスを取得する
            MoveControllerBase mochiMoveController = mochi.GetComponent <MoveControllerBase>();
            // 取得した制御クラスをオブジェクト名とセットで追加
            moveControllers.Add(mochi.gameObject.name, mochiMoveController);
        }

        // ウサギの全ての制御クラスを取得
        foreach (Transform rabbit in rabbitSpawnPool)
        {
            // ウサギにアタッチしている制御クラスを取得する
            MoveControllerBase rabbitMoveController = rabbit.GetComponent <MoveControllerBase>();
            // 取得した制御クラスをオブジェクト名とセットで追加
            moveControllers.Add(rabbit.gameObject.name, rabbitMoveController);
        }
    }