質問するログイン新規登録

回答編集履歴

1

補足

2021/02/10 09:26

投稿

hogefugapiyo
hogefugapiyo

スコア3311

answer CHANGED
@@ -1,1 +1,22 @@
1
- ``SoundManager.Instance.PlaySeByName("Coin01");``とかで鳴るんじゃないですかね。
1
+ ``SoundManager.Instance.PlaySeByName("Coin01");``とかで鳴るんじゃないですかね。
2
+
3
+ ``SingletonMonoBehaviour``を継承しているのでシングルトンなのが分かります。
4
+ 説明すると長くなるのでざっくりいうと、シーンをまたいでも1個だけ必ず存在する存在みたいな感じです。
5
+
6
+ ```cs
7
+ if (this != Instance)
8
+ {
9
+ Destroy(gameObject);
10
+ return;
11
+ }
12
+
13
+ DontDestroyOnLoad(gameObject);
14
+ ```
15
+
16
+ (例えばこの場合だとSoundManagerがあるシーンに何度も移動したら、そのたびにSoundManagerが増えていくことは避けたいです。なので常に1個になるようにInstanceとしてstaticなSoundManagerの参照をとっておいて、それと一致しないSoundManagerは消しています)
17
+
18
+ ということは、``SoundManager.Instance``さんを呼び出せば、今存在するであろうSoundManagerを参照して利用することができます。
19
+
20
+ あとは利用ページに案内にあるように``PlayBgmByName``でBGMを再生、``PlaySeByName``でSEを名前指定して再生できるそうなので``SoundManager.Instance``さんの``PlaySeByName``を呼び出します。
21
+
22
+ ``SoundManager.Instance.PlaySeByName("Coin01");`` となりました。