回答編集履歴

3

音声名を自動取得するコードを追加 音声をサウンドに修正

2016/09/24 10:00

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  1. Resourcesフォルダを適当な場所に作成
10
10
 
11
- 2. 読み出したい音声ファイルを制作したフォルダ内に配置
11
+ 2. 読み出したいサウンドファイルを制作したフォルダ内に配置
12
12
 
13
13
  仮にbird1.mp3、bird2.mp3、bird3.mp3、bird4.mp3としておきます。
14
14
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  ###実装
22
22
 
23
- **・音声の配置場所を以下と仮定して進めます。**
23
+ **・サウンドの配置場所を以下と仮定して進めます。**
24
24
 
25
25
  Resources/bird_voices/bird1.mp3
26
26
 
@@ -31,6 +31,8 @@
31
31
  Resources/bird_voices/bird4.mp3
32
32
 
33
33
 
34
+
35
+ ###サウンド名を指定するパターン
34
36
 
35
37
  ```C#
36
38
 
@@ -106,6 +108,70 @@
106
108
 
107
109
 
108
110
 
111
+ ###サウンド名を自動で取得するパターン
112
+
113
+ ```C#
114
+
115
+ using UnityEngine;
116
+
117
+ using System.Collections;
118
+
119
+
120
+
121
+ public class birdManager : MonoBehaviour {
122
+
123
+
124
+
125
+ [SerializeField]
126
+
127
+ //鳥のプレハブをセット
128
+
129
+ //※ AudioSourceをつけ忘れないように注意
130
+
131
+ GameObject birdPrefab;
132
+
133
+
134
+
135
+ //サウンドが保存されている場所のパス
136
+
137
+ string birdFolder = "bird_voices/";
138
+
139
+
140
+
141
+ void Awake()
142
+
143
+ {
144
+
145
+ //とりあえず10回ほどループ
146
+
147
+ for (int i = 0; i < 10; i++)
148
+
149
+ {
150
+
151
+ GameObject obj = Instantiate(birdPrefab,new Vector3(Random.Range(1,100),Random.Range(7,10),Random.Range(1,100)), Quaternion.identity) as GameObject;
152
+
153
+ AudioSource source = obj.GetComponent<AudioSource>();
154
+
155
+ //Resources.LoadAllですべてのサウンドを取得 ()内はファルダ名
156
+
157
+ AudioClip[] clips = Resources.LoadAll<AudioClip>(birdFolder);
158
+
159
+ source.clip = clips[Random.Range(0,clips.Length)];
160
+
161
+ source.Play();
162
+
163
+ }
164
+
165
+ }
166
+
167
+ }
168
+
169
+ ```
170
+
171
+
172
+
173
+
174
+
109
175
  ###Resoucesフォルダの注意点などはこちら
110
176
 
111
177
  https://teratail.com/questions/48887

2

表現を修正

2016/09/24 10:00

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  AudioSource source = obj.GetComponent<AudioSource>();
92
92
 
93
- //Resources.Loadでサウンドをロード ()内は画像名パス指定
93
+ //Resources.Loadでサウンドをロード ()内は画像名パスから指定
94
94
 
95
95
  source.clip = Resources.Load<AudioClip>(birdFolder + birdVoiceName[Random.Range(0,birdVoiceName.Length)]);
96
96
 

1

誤字の修正

2016/09/24 09:44

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ###使い方説明 下準備
8
8
 
9
- 1. Resourcesフォルダを適当な場所に
9
+ 1. Resourcesフォルダを適当な場所に作
10
10
 
11
11
  2. 読み出したい音声ファイルを制作したフォルダ内に配置
12
12