예제 #1
0
        public void FixedUpdate()
        {
            if (!GameEnd)
            {
                TimerCount = Time.time;

                // 制限時間処理
                if (TimerCount - StartTime > (float)nextPhase)
                {
                    changeNextPhase();
                }


                // タイムアップでゲームクリア
                if (currentPhase == TimerPhase.End)
                {
                    GameObject producer = GameObject.Find("producer");
                    producer.GetComponent <Animator>().SetBool("Respawn", false);
                    producer.GetComponent <CircleCollider2D>().enabled = false;                    // Pのコライダーを外す
                    Map.RemoveObject(producer.GetComponent <ProducerMove>().MapPosition);          // マップからPを除外
                    DisableScriptsOn(GameObject.Find("producer"));
                    GameObject.Find("goal_shade").GetComponent <SpriteRenderer>().enabled = false; // パーティ会場の影を消す
                    GameObject.Find("door").GetComponent <SpriteRenderer>().enabled       = false; // ドア非表示
                    IsGameClear = true;
                    GameEnd     = true;
                }

                // タイムアップ前に小梅ちゃんがゴール or プロデューサーのライフが尽きたら
                // ゲームオーバー
                else if (GameObject.Find("koume").GetComponent <KoumeMove>().Mode == KoumeMove.MoveMode.Goal ||
                         GameObject.Find("producer").GetComponent <Producer>().Life <= 0)
                {
                    // 小梅ちゃんとプロデューサーのスクリプトを無効化
                    // DisableScriptsOn(GameObject.Find("koume"));
                    GameObject producer = GameObject.Find("producer");

                    producer.GetComponent <CircleCollider2D>().enabled = false;           // Pのコライダーを外す
                    Map.RemoveObject(producer.GetComponent <ProducerMove>().MapPosition); // マップからPを除外
                    DisableScriptsOn(GameObject.Find("producer"));
                    GameOver();
                    GameObject.Find("full_shade").GetComponent <SpriteRenderer>().enabled = true; // ゲームオーバー表示
                    GameObject.Find("gameover").GetComponent <SpriteRenderer>().enabled   = true; // ゲームオーバー表示
                    GameEnd = true;
                }

                // 1秒ごとにパーティ準備勢を動かす
                if (Time.time - LastUpdate >= 2.0f)
                {
                    var mMoveList = new List <Vector2>(Constant.MobMoveList);
                    mMoveList.Shuffle();
                    GameObject.Find("mirei").transform.position    = (Vector3)mMoveList.Pop() + new Vector3(0, 0, 1);
                    GameObject.Find("morikubo").transform.position = (Vector3)mMoveList.Pop() + new Vector3(0, 0, 1);
                    GameObject.Find("shoko").transform.position    = (Vector3)mMoveList.Pop() + new Vector3(0, 0, 1);
                    GameObject.Find("sachiko").transform.position  = (Vector3)mMoveList.Pop() + new Vector3(0, 0, 1);
                    LastUpdate = Time.time;
                }
            }
        }