なんとかするから、なんとかなる

エンジニア関係のことを書きます

Unity でUI.ImageのSource Imageを変更する

Unity のイメージの元画像を変更するときに苦戦したのでそのメモ

Textureが手元にある場合

Texture texture = Resources.Load("image path") as Texture;
Image img = GameObject.Find("Canvas/Panel/***").GetComponent<Image>();
img.material.mainTexture = texture;

ただし、この方法では変更したTextureが直ぐには反映されない。

SetTexture

この方法でも変更したTextureが直ぐには反映されない。

解決方法

TextureをSetするのではなく、TextureをSpriteに変換して、SpriteをSetすることで、即座に反映

なぜなのか?

そのうちなぜ、こんな挙動をするのか調べてみたいです。