2014年6月16日月曜日

Resources.LoadAllを使ってProject内フォルダの複数ファイルを一気にロードする

Unityで、Resources内の指定パス内のフォルダから複数ファイルを一括で拾ってくる処理。

結論、Resources.LoadAllを使えばサクッとできるのですが、こやつがObject[]のArrayで結果を返してくるので、List型にcastとかやらにゃならん。

たとえばAudioClipを一括ロードする方法がこちら

private List<AudioClip> seAudioClips = new List<AudioClip>();
void Awake () {
seAudioClips = Resources.LoadAll(filePath, typeof(AudioClip)).Cast<AudioClip>().ToList();
}
filePathにはResources以下を書けばOK。
せっかくType ofで種類を指定しているんだから、せめて戻り値AudioClip[]にならんかいな。