public override void Enter() { goalAreas = MonoBehaviour.FindObjectsOfType <GoalArea>(); ai = MonoBehaviour.FindObjectOfType <AirHockeyAI>(); player = MonoBehaviour.FindObjectOfType <PadController>(); foreach (GoalArea area in goalAreas) { // ゴールしたときの処理を登録 area.OnGoaled = (type) => { puck.SetActive(false); ai.SetActiveOperation(false); player.SetActiveOperation(false); // 塗られた色の割合を求め,スコアに適用する float ratio = DynamicPaintManager.Instance.ComputeColorRatio(type); ScoreStore.Instance.IncrementPoint(type, ratio); }; } // スコアが更新されたときの処理を登録 inGameUiController.OnScoreUpdated = () => { // 現在のゲームをリセットする if (ScoreStore.Instance.Round < MaxRound) { Reset(); } // 最大ラウンドまでしたら,ゲーム終了 else { isGameFinished = true; } }; ai.Initialize(new HS_Normal()); inGameUiController.PlayView(); Reset(); }