/// <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(); } } }
/// <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(); } } }
/// <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); } }