2012年4月26日木曜日

Unity: Resourcesフォルダが複数ある時の読み込みテスト

UnityではResourcesフォルダ内にデータを入れておくと、スクリプトからデータの読み出しが
Resources.Load("dataname");
で行う事ができます。

リファレンスには、Resourcesフォルダは複数持つ事ができると書いてあります。
試しに以下のようなフォルダ構成にして、データを読み込むテストをしてみました。

それぞれのResourcesフォルダ内にあるBlockPrefab2とBlockPrefab3をインスタンス化するコード(C#)は以下のようになります。

Instantiate(Resources.Load("Prefabs/BlockPrefab2"),new Vector3(-50,10,10),Quaternion.identity);
Instantiate(Resources.Load("Prefabs/BlockPrefab3"),new Vector3(100,10,10),Quaternion.identity);
2つとも、あたかもひとつのResourcesフォルダにあるかのようにアクセスできます。

では、/Test/Resources/Prefabs/ 内のデータ名を、BlockPrefab3からBlockPrefab2に変更したらどうなるのでしょうか?
結果としては、/Resources/Prefabs/BlockPrefab2 の方が優先されてロードされました。
検索順序がどのようなアルゴリズムになっているのかわからないので、結果は環境によって変わるかもしれません。

こちらも合わせてどうぞ。

1 件のコメント:

  1. 参考になりました!ありがとうございます。

    返信削除

Related Posts Plugin for WordPress, Blogger...