// Update is called once per frame void Update() { nowTime += Time.deltaTime * timeLevel.SlipRatio * _eventRatio * _fEventRatio; SetImage(); if (_eventRatio != 0) { if (!IsPinch && nowTime > maxTime / 4.0f * 3.0f) { GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>(); gameScene.gameUI.gamePause.IsPinch = true; IsPinch = true; timeImage.color = Color.red; if(gameScene.gameUI.gameInfoCanvas.feverGauge.feverState != _eFeverState.FEVER) { gameScene.StopBGM(GameScene._eGameSceneBGM.GAME); gameScene.PlayBGM(GameScene._eGameSceneBGM.PINCH); } } if (IsPinch && nowTime <= maxTime / 4.0f * 3.0f) { GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>(); gameScene.gameUI.gamePause.IsPinch = false; IsPinch = false; timeImage.color = Color.white; if (gameScene.gameUI.gameInfoCanvas.feverGauge.feverState != _eFeverState.FEVER) { gameScene.StopBGM(GameScene._eGameSceneBGM.PINCH); gameScene.PlayBGM(GameScene._eGameSceneBGM.GAME); } } } if (nowTime > maxTime) { //ここにゲームオーバー処理 nowTime = maxTime - 0.1f; _eventRatio = 0.0f; GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>(); gameScene.gameController.nodeController.TapRelease(); gameScene.gameController.nodeController.DoKillAllNode(); gameScene.gameController.nodeController.isNodeLock = true; //ノードを操作不能にする //スコアをもってくる GameInfoCanvas gInfoCanvas = GetComponentInParent<GameInfoCanvas>(); int Rank = gInfoCanvas.score.Decide(transform); //ゲームオーバー時のパネルを出して、タップでリザルト画面に行く GameObject gameEndPanelObject = (GameObject)Instantiate(Resources.Load<GameObject>(gameEndPanelPath)); GameEndPanel gameEndpanel = gameEndPanelObject.GetComponent<GameEndPanel>(); gameEndpanel.transform.SetParent(gameScene.gameUI.gamePause.optionCanvas.transform); gameEndpanel.transform.position = new Vector3(0.0f, 0.0f, 0.0f); gameEndpanel.transform.localPosition = new Vector3(0.0f, 1334.0f, 0.0f); gameEndpanel.SetScore(gInfoCanvas.score.GameScore, Rank); gameScene.gameUI.gamePause.IsPinch = false; IsPinch = false; //ボタンでなく時間経過で勝手に移行するように // リザルトへ戻るボタンを設定 TMethod del = () => { AppliController AppliCtr = GetComponentInParent<AppliController>(); AppliCtr.ChangeScene(AppliController._eSceneID.RANKING, 0.5f, 0.5f); }; StartCoroutine(ToResult(del)); gameEndpanel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); //オプションボタンをノンアクに gameScene.gameUI.gamePause.optionCanvas.gameObject.GetComponentInChildren<Button>().interactable = false; return; } //時間経過による難易度変更処理 if(nowTimeLevel < levelTableScript.TimeLevelCount -1 && Time.time - startTime > timeLevelInterval * (nowTimeLevel + 1) ) { nowTimeLevel++; timeLevel = levelTableScript.GetTimeLevel(nowTimeLevel); } }
// Use this for initialization void Start() { GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>(); Vector2 effectTimeInfo = gameScene.gameController.nodeController.gameObject.GetComponent<GameEffect>().effectTimeInfo; gainWaitTime = effectTimeInfo.x; fillWaitTime = effectTimeInfo.y; timeLevel = levelTableScript.GetTimeLevel(0); timeLevelInterval = levelTableScript.TimeLevelInterval; startTime = Time.time; nowTimeLevel = 0; ojityanAnimator = gameScene.gameUI.ojityanAnimator; _eventRatio = 0.0f; //開始演出が終わるまでは時間が減らない _fEventRatio = 1.0f; }