前提・実現したいこと
Unityのゲーム内で使用するカウントダウン機能を作っています。
カウントダウンのラスト3秒で時報のように秒数に合わせてピッピッピッというように音を出したいです。
なので3、2、1秒に合わせて音を出したいです。
画面にカウントダウンを表示することはできました。
おそらく条件文が間違っているんだろうなとは思うのですが、解決方法がわからないため質問させていただきました。
よろしくお願いいたします。
発生している問題・エラーメッセージ
3秒を超えると連続して音が鳴ってしまい、意図した挙動になりません。
該当のソースコード
C#
1using UnityEngine; 2using UnityEngine.UI; 3using System.Collections; 4 5public class TimeScript : MonoBehaviour { 6 7 private float time = 20; 8 public AudioClip countSE; 9 AudioSource cnt; 10 11 void Start () { 12 //float型からint型へCastし、String型に変換して表示 13 GetComponent<Text>().text = ((int)time).ToString(); 14 this.cnt = GetComponent<AudioSource>(); 15 } 16 void Update (){ 17 //1秒に1ずつ減らしていく 18 time -= Time.deltaTime; 19 20 //3秒になったらカウントする 21 if(time <= 3) 22 { 23 this.cnt.PlayOneShot(this.countSE); 24 } 25 26 //マイナスは表示しない 27 if (time < 0) time = 0; 28 GetComponent<Text> ().text = ((int)time).ToString (); 29 } 30}
試したこと
対象のオブジェクトにAudioSourceとTimeScriptを追加
time<=3だと3秒以下の場合ずっと実行され続けてしまうようなのでtime==3にすると音が鳴らず
time==1 || time==2 || time==3でも音は鳴りませんでした
補足情報(FW/ツールのバージョンなど)
エディターバージョン
2020.0.24f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/07 06:14