質問編集履歴

4

解決のコードの修正

2018/06/27 05:56

投稿

Buddha_san2
Buddha_san2

スコア27

test CHANGED
File without changes
test CHANGED
@@ -392,6 +392,6 @@
392
392
 
393
393
  ```
394
394
 
395
- 回答して頂いた皆様のおかげで、無事うまくセーブ、ロードが出来ました。
395
+ 回答して頂いた皆様(MMashiro様、capra314cabra様、ha_wn様、TomoG12様)のおかげで、無事うまくセーブ、ロードが出来ました。
396
396
 
397
397
  無知な私に、長い時間付き合って頂き、本当にありがとうございます。

3

解決したコード

2018/06/27 05:56

投稿

Buddha_san2
Buddha_san2

スコア27

test CHANGED
File without changes
test CHANGED
@@ -257,3 +257,141 @@
257
257
  }
258
258
 
259
259
  ```
260
+
261
+ ### 解決したコード
262
+
263
+ 音量の変更をするスライダー部分
264
+
265
+ ```
266
+
267
+ public class VolumeALL : MonoBehaviour
268
+
269
+ {
270
+
271
+
272
+
273
+ public UnityEngine.Audio.AudioMixer mixer;
274
+
275
+
276
+
277
+ // インスペクター上からスライダーのオブジェクトを登録
278
+
279
+ public Slider targetSlider;
280
+
281
+
282
+
283
+
284
+
285
+ void Start()
286
+
287
+ {
288
+
289
+ targetSlider.value = PlayerPrefs.GetFloat("Master",0);
290
+
291
+ masterVol(targetSlider);
292
+
293
+ }
294
+
295
+
296
+
297
+ public void masterVol(Slider slider)
298
+
299
+ {
300
+
301
+ mixer.SetFloat("Master", slider.value);
302
+
303
+ }
304
+
305
+ }
306
+
307
+ ```
308
+
309
+ タイトル画面
310
+
311
+ ```
312
+
313
+ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
314
+
315
+ //シーンが同じでも重複再生されないコード
316
+
317
+ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
318
+
319
+ public class Sound2 : MonoBehaviour
320
+
321
+ {
322
+
323
+
324
+
325
+ public UnityEngine.Audio.AudioMixer mixer;
326
+
327
+
328
+
329
+ public bool dontDestroyEnabled = true;
330
+
331
+
332
+
333
+ //instanceにSoundを格納
334
+
335
+ private static Sound2 instance = null;
336
+
337
+
338
+
339
+ public static Sound2 Instance
340
+
341
+ {
342
+
343
+ get { return instance; }
344
+
345
+ }
346
+
347
+
348
+
349
+ void Awake()
350
+
351
+ {
352
+
353
+ //既にinstanceに曲入っていて、新たに入った曲があれば、それを消去
354
+
355
+ if (instance != null && instance != this)
356
+
357
+ {
358
+
359
+ Destroy(this.gameObject);
360
+
361
+ return;
362
+
363
+ }
364
+
365
+ //曲がまだなら曲スタート
366
+
367
+ else
368
+
369
+ {
370
+
371
+ instance = this;
372
+
373
+ }
374
+
375
+ //サウンドを消去せずに維持する
376
+
377
+ DontDestroyOnLoad(this.gameObject);
378
+
379
+ }
380
+
381
+
382
+
383
+ void Start()
384
+
385
+ {
386
+
387
+ mixer.SetFloat("Master", PlayerPrefs.GetFloat("Master", 0));
388
+
389
+ }
390
+
391
+
392
+
393
+ ```
394
+
395
+ 回答して頂いた皆様のおかげで、無事うまくセーブ、ロードが出来ました。
396
+
397
+ 無知な私に、長い時間付き合って頂き、本当にありがとうございます。

2

追加

2018/06/27 05:49

投稿

Buddha_san2
Buddha_san2

スコア27

test CHANGED
File without changes
test CHANGED
@@ -181,3 +181,79 @@
181
181
  私のゲームでは、タイトルのシーンが最初なので、一度設定のシーンに行かなければ音量が変わりません。
182
182
 
183
183
  タイトル画面の状態から音量が変わっている、というようにすることは可能でしょうか?
184
+
185
+
186
+
187
+ ##タイトル画面の音楽を流しているコード
188
+
189
+ 関係ないかもしれないのですが、挙げます
190
+
191
+ ```
192
+
193
+ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
194
+
195
+ //シーンが同じでも重複再生されないコード
196
+
197
+ //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
198
+
199
+ public class Sound2 : MonoBehaviour
200
+
201
+ {
202
+
203
+
204
+
205
+ public bool dontDestroyEnabled = true;
206
+
207
+
208
+
209
+ //instanceにSoundを格納
210
+
211
+ private static Sound2 instance = null;
212
+
213
+
214
+
215
+ public static Sound2 Instance
216
+
217
+ {
218
+
219
+ get { return instance; }
220
+
221
+ }
222
+
223
+
224
+
225
+ void Awake()
226
+
227
+ {
228
+
229
+ //既にinstanceに曲入っていて、新たに入った曲があれば、それを消去
230
+
231
+ if (instance != null && instance != this)
232
+
233
+ {
234
+
235
+ Destroy(this.gameObject);
236
+
237
+ return;
238
+
239
+ }
240
+
241
+ //曲がまだなら曲スタート
242
+
243
+ else
244
+
245
+ {
246
+
247
+ instance = this;
248
+
249
+ }
250
+
251
+ //サウンドを消去せずに維持する
252
+
253
+ DontDestroyOnLoad(this.gameObject);
254
+
255
+
256
+
257
+ }
258
+
259
+ ```

1

感謝と新たに生まれた問題について

2018/06/25 11:47

投稿

Buddha_san2
Buddha_san2

スコア27

test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,79 @@
105
105
  ```
106
106
 
107
107
  を起動させています。
108
+
109
+
110
+
111
+ ###訂正後
112
+
113
+ ```
114
+
115
+ public class VolumeALL : MonoBehaviour
116
+
117
+ {
118
+
119
+
120
+
121
+ public UnityEngine.Audio.AudioMixer mixer;
122
+
123
+
124
+
125
+ // インスペクター上からスライダーのオブジェクトを登録
126
+
127
+ public Slider targetSlider;
128
+
129
+
130
+
131
+
132
+
133
+ void Start()
134
+
135
+ {
136
+
137
+ targetSlider.value = PlayerPrefs.GetFloat("Master",0);
138
+
139
+ }
140
+
141
+
142
+
143
+ public void masterVol(Slider slider)
144
+
145
+ {
146
+
147
+ mixer.SetFloat("Master", slider.value);
148
+
149
+ }
150
+
151
+ }
152
+
153
+ ```
154
+
155
+ シーンを移動させるボタンにこのメソッドを起動
156
+
157
+ ```
158
+
159
+ public void SaveVolume(Slider slider)
160
+
161
+ {
162
+
163
+ PlayerPrefs.SetFloat("Master", slider.value);
164
+
165
+ PlayerPrefs.Save();
166
+
167
+ }
168
+
169
+ ```
170
+
171
+ これで、Sliderをセーブ、ロードすることが出来ました。自分自身、教えて頂かなければ、一生出来なかったと思います。
172
+
173
+ 回答、本当にありがとうございます。
174
+
175
+ もし良ければ、もう少しだけ教えて頂けたらと思います。
176
+
177
+ ##問題点
178
+
179
+ 次は、その音量を変えるシーンに移らなければ、音量が変わらないという事になりました。
180
+
181
+ 私のゲームでは、タイトルのシーンが最初なので、一度設定のシーンに行かなければ音量が変わりません。
182
+
183
+ タイトル画面の状態から音量が変わっている、というようにすることは可能でしょうか?