ボタンを押したらSEが鳴りシーン遷移をするスクリプトを書いているのですが、DontDestroyOnLoadがあるにも関わらずシーンを遷移するとSEが途切れてしまいます。(鳴らしたい音の部分は_click.PlayOneShot(_click.clip);です。)こちらは何が原因なのでしょうか?
試しに空のオブジェクトにaudiosourceをアタッチしPlayOnAwakeにチェックを入れ、スクリプトをアタッチしたところシーンを遷移しても音が鳴っていました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.SceneManagement; 5using UnityEngine.EventSystems; 6 7public class SceneController : MonoBehaviour 8{ 9 private AudioSource _click; 10 11 void Start() 12 { 13 DontDestroyOnLoad(this); 14 _click = GetComponent<AudioSource>(); 15 } 16 17 void Update( ) { 18 //ボタンを押したときのクリック操作を無視できる 19 if ( EventSystem.current.IsPointerOverGameObject( ) ) { 20 return; 21 } 22 //マウスを押したらタイトルに戻る 23 if ( Input.GetMouseButton( 0 ) ) { 24 SceneManager.LoadScene( "Title" ); 25 } 26 } 27 28 public void MainBack() 29 { 30 _click.PlayOneShot(_click.clip); 31 SceneManager.LoadScene("Main"); 32 } 33} 34
あなたのソースで動かしてみたらSEが途切れずになりましたので、
貼り付けた部分のコードは問題ないと思います。
解決になるかは分かりませんが
試しにシーンを新しく作って、そのシーンに遷移してみて途切れるか確認してみてください
※「SceneManager.LoadScene("Main");」のMainを新しく作ったシーン名にする
これで途切れなかったら、Mainシーンの起動時の処理が
悪さをしているということです。
新しいシーンを作成して試したところ、このスクリプトをアタッチしたボタンが遷移時に消滅してしまうことが原因だと判明したため別にオブジェクトを作成しアタッチすることで解決しました。
アドバイスいただきましてありがとうございました。
回答1件
あなたの回答
tips
プレビュー