Traumachicken

6/05/2011

Unity :Resources.Load()

テクスチャを動的に変更しようとしたところでつまづいた。
テクスチャの変更自体は下のように書く。
renderer.material.mainTexture = newTexture ;
Editor(Hierarchy)内で使われてないファイルを呼び出す場合は、
Resources.Load()を使う。

注意しなければならないのは、
呼び出すファイルはResourcesフォルダ内にないといけないこと。
Resourcesと名のつくフォルダの外にあるものは、
いくらパスを通そうが呼び出せない。


上の状態でzombie_texを呼び出すには、
Resources.Load("Textures/zombie_tex") ;
よってテクスチャの変更は、
render.material.mainTexture = Resources.Load("Textures/zombie_tex") ;
となる。

パスの"Resources"と、ファイルの拡張子は必要ない。
Resourcesファイルが複数ある場合は、
全部のフォルダを探しに行ってくれる。


おかげでフォルダの階層がめちゃくちゃになった。


2 件のコメント:

ZGB さんのコメント...

完全に罠ですよね、この記事のおかげで僕も罠から脱出することができました、ありがとうございましたm(_ _)m

Unknown さんのコメント...

Resourcesフォルダの中になければいけない、に助けられました。ありがとうございました。