曲自体に再生時間の情報を持たせておいて、再生開始からその曲の再生時間を上回ったらResultシーンに遷移する
コードを書いているのですが、なぜかその秒数をすぎた後何も起きません。
キーを入力したらConsole画面に時間を出力するようにして、時間が上回ったのを確認したのですが、シーン移動
しません。
C#
1void Update() 2 { 3 waitingTime -= Time.deltaTime; 4 if (waitingTime <= 0.0f && !isPlaying) 5 { 6 isPlaying = true; 7 _startTime = Time.time; 8 _music.Play(); 9 timerGauge = true; 10 } 11 12 if (isPlaying) 13 { 14 GetNextNotes(); 15 16 ScoreColor(); 17 scoreText.text = _score.ToString("0000000"); 18 comboText.text = _combo.ToString(); 19 20 if (_score >= _maxScore) 21 { 22 _score = _maxScore; 23 } 24 25 if (_combo >= _maxCombo) 26 { 27 _maxCombo = _combo; 28 } 29 30 if (timerGauge) 31 { 32 musicTimerGauge.fillAmount += 1.0f / music.MusicTime * Time.deltaTime; 33 } 34 } 35 if (Input.GetKeyDown(KeyCode.Return)) 36 { 37 Debug.Log(GetMusicTime()); 38 } 39 ResultLoadScene(); 40 } 41 以下略... 42private void ResultLoadScene() 43 { 44 if (GetMusicTime() > music.MusicTime) 45 { 46 //isPlaying = false; 47 _fadeManager.fadeOutStart(0, 0, 0, 0, resultScene); 48 } 49 } 50 51 public float GetMusicTime() 52 { 53 return Time.time - _startTime; 54 }
なぜかコメントアウトしている部分をコードに書くと、時間が上回ったときにシーン移動します。
ですが、isPlayingをfalseにすると、最初のif文がまた実行されてしまうので、シーン移動するときに
曲が最初から再生されてしまいます。isPlayingはこの2つの部分でしかいじっていないので、
なぜこうなるのかがわかりません。
どなたかわかる方がいましたら具体的な解決方法をお願いします。
回答1件
あなたの回答
tips
プレビュー