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

回答編集履歴

2

プログラム修正

2018/08/03 01:29

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -101,6 +101,10 @@
101
101
  //使用するAudioSource取得
102
102
  source = GetComponent<AudioSource> ();
103
103
 
104
+ //最初のBGM再生
105
+ source.clip = BGM_title;
106
+ source.Play();
107
+
104
108
  //シーンが切り替わった時に呼ばれるメソッドを登録
105
109
  SceneManager.activeSceneChanged += OnActiveSceneChanged;
106
110
  }

1

プログラム修正

2018/08/03 01:29

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -30,6 +30,9 @@
30
30
  public AudioSource BGM_title;
31
31
  public AudioSource BGM_main;
32
32
 
33
+ //1つ前のシーン名
34
+ private string beforeScene = "Title";
35
+
33
36
  // Use this for initialization
34
37
  void Start () {
35
38
  //自分と各BGMオブジェクトをシーン切り替え時も破棄しないようにする
@@ -46,16 +49,19 @@
46
49
  //シーンがどう変わったかで判定
47
50
 
48
51
  //メニューからメインへ
49
- if (prevScene.name == "Menu" && nextScene.name == "Main") {
52
+ if (beforeScene == "Menu" && nextScene.name == "Main") {
50
53
  BGM_title.Stop ();
51
54
  BGM_main.Play ();
52
55
  }
53
56
 
54
57
  //メインからメニューへ
55
- if (prevScene.name == "Main" && nextScene.name == "Menu") {
58
+ if (beforeScene == "Main" && nextScene.name == "Menu") {
56
59
  BGM_main.Stop ();
57
60
  BGM_title.Play ();
58
61
  }
62
+
63
+ //遷移後のシーン名を「1つ前のシーン名」として保持
64
+ beforeScene = nextScene.name;
59
65
  }
60
66
  }
61
67
 
@@ -84,6 +90,9 @@
84
90
  //使用するAudioSource
85
91
  private AudioSource source;
86
92
 
93
+ //1つ前のシーン名
94
+ private string beforeScene = "Title";
95
+
87
96
  // Use this for initialization
88
97
  void Start () {
89
98
  //自分をシーン切り替え時も破棄しないようにする
@@ -101,18 +110,21 @@
101
110
  //シーンがどう変わったかで判定
102
111
 
103
112
  //メニューからメインへ
104
- if (prevScene.name == "Menu" && nextScene.name == "Main") {
113
+ if (beforeScene == "Menu" && nextScene.name == "Main") {
105
114
  source.Stop ();
106
115
  source.clip = BGM_main; //流すクリップを切り替える
107
116
  source.Play ();
108
117
  }
109
118
 
110
119
  //メインからメニューへ
111
- if (prevScene.name == "Main" && nextScene.name == "Menu") {
120
+ if (beforeScene == "Main" && nextScene.name == "Menu") {
112
121
  source.Stop ();
113
122
  source.clip = BGM_title; //流すクリップを切り替える
114
123
  source.Play ();
115
124
  }
125
+
126
+ //遷移後のシーン名を「1つ前のシーン名」として保持
127
+ beforeScene = nextScene.name;
116
128
  }
117
129
  }
118
130
  ```