渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

少しトリッキーなUnityの画像差し替え


f:id:esakun:20160703130018p:plain

上記のUnity-chanは1枚のUnity-chanの画像を8つのGameObjectで使用している状態です。

f:id:esakun:20160703144405p:plain

f:id:esakun:20160703130030p:plain

このUnity-chanを下の笑っているUnity-chan画像に差し替えたいと思います。

f:id:esakun:20160703130316p:plain:w150

一番手っ取り早い方法 : 画像ファイルの上書き

unity_chan.png unty_chan_smile.png
f:id:esakun:20160703130635p:plain:w150 f:id:esakun:20160703130316p:plain:w150

unity_chan.pngunity_chan_smile.pngで上書きします。

ただしUnityのProjectブラウザ上でファイルの上書きをしようとすると、上書きしようとしたファイル名に連番が振られてしまい上書き出来ません。

f:id:esakun:20160703131304p:plain

このようにファイルの上書きが出来ません。

Unityの外でファイルを上書きする

今まで散々「ファイルの操作はUnityのProjectブラウザでやらないとダメだよ」ということを書いてきましたが、この場合は特例です。

f:id:esakun:20160703131628p:plain

私はMacを使っているのでFinderで上書きします。

f:id:esakun:20160703131910p:plain

無事に全てのunity-chan画像を置き換えることが出来ました。

これは何が起きているかというと、元々使用していた画像unity_chan.pngGUIDに紐付いた画像が置き換わった事で、この画像差し替えを実現しています。

どのようにGUIDが使われているか少しだけ探ってみます。

GUIDを使って画像使用箇所を検索する

GUIDで画像使用箇所を検索するためには、検索したいGUIDを調べる必要があります。

今回使用しているunity_chan.pngのGUIDを確認します。
確認方法は以前紹介したコチラから。

またMacの方ならターミナルのcatコマンドでさくっと表示させることも出来ます。
f:id:esakun:20160703143945g:plain

unity_chan.pngのGUIDはcbcd676178b014e59825b26f11bdd73eということが分かりました。

では次に使用している箇所をシーンファイルから検索してみようと思います。
今回作成したシーンファイルImageReplace.unityをテキストエディタで開いてみます。

コチラ
※テキストが長すぎたので一部端折っています

先ほどのGUID cbcd676178b014e59825b26f11bdd73eで検索すると下記のように何件かヒットすると思います。これが、unity-chan.pngが使用している場所です。

f:id:esakun:20160703144259p:plain

GUIDを直接書き換えて画像を差し替える

ファイル上書きでunity-chan画像を差し替えましたが、逆にGUID書き換えでも差し替え可能です。

f:id:esakun:20160703135542p:plain

unity_chan_smile.meta内記載のGUIDをcbcd676178b014e59825b26f11bdd73eに変更しても正常に画像を置き換えることが出来ます。

unity_chan_smile.meta
f:id:esakun:20160703145249p:plain

※ただし同プロジェクト内で同じGUIDが混在するとエラーが起きますので、元のunity_chan.png.metaは事前に削除する必要があります。

まとめ

GUIDを使った画像差し替えをしましたが、UnityにおいてGUIDは画像にかぎらず全てのオブジェクトの参照はGUIDで管理されていますので、画像以外も差し替えは可能です(オススメはしません)。

関連しそうな記事

esakun.hateblo.jp

f:id:esakun:20160208012216j:plain