AudioSourceを管理しているクラスから現在のBGMの再生位置を参照したいのですができませんでした。
C#
1 /// <summary> 2 /// 楽曲を管理するクラス 3 /// </summary> 4 public class AudioManager : MonoBehaviour 5 { 6 /// <summary> 楽曲情報 </summary> 7 [SerializeField] AudioSource music; 8 public AudioSource Music => music; 9 }
C#
1 /// <summary> 2 /// ノートを生成するクラス 3 /// </summary> 4 public class NotesCreator : ObjectPool 5 { 6 AudioManager clip = new AudioManager(); 7 8 void Awake() 9 { 10 clip = GameObject.Find("MusicSource").GetComponent<AudioManager>(); 11 clip.Music.Play(); 12 } 13 }
C#
1 /// <summary> 2 /// ノート自身が持つクラス 3 /// </summary> 4 [RequireComponent(typeof(Rigidbody2D))] 5 public class Note : MonoBehaviour 6 { 7 AudioManager clip; 8 9 void Awake() 10 { 11 clip = GameObject.Find("MusicSource").GetComponent<AudioManager>(); 12 } 13 14 void Update() 15 { 16 Debug.Log(clip.Music.time); 17 } 18 }
Unity側でScriptの実行順序を制御していて、クラス自体は参照できるのですが、
clip.Music.timeが0のままで値が増えませんでした。
どなたかわかる方がいましたら回答お願いします。
Scriptの中身はわかりやすくするために省略して記述しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。