トーフメモ

主にゲーム制作

ファイル読み込みを自分で呼び出して認識させる【Unity】

f:id:tofgame:20190428235628j:plain

起こった問題

Unity実行中に、System.IO.Fileクラスで作成したファイル、フォルダや、その他方法で作成したデータをAssetフォルダ上に置いて使用するとします。

ですが、Unityエディタ上ではすぐ認識されず、Unity側の認識を待たなければResources.Loadなどではロードできない状況になります。

ProjectViewで確認してもわかりますが、実行中にファイルをAssetフォルダに含めても、更新がかかるまで少し待つことになります。

解決策

AssetDatabase.Refresh()を使用します!
docs.unity3d.com

なお、AssetDatabase.Refresh()を使用する時はUnityEditorをusingする必要があるので、この動作はエディタ上限定になります。

実際に確かめてみる

Refresh有り無しでファイル生成処理を比較します。

動かしてみるとわかりますが、Refreshを書かない場合、Resources.Loadで取得しようとすると認識されません。
Refreshを書くとロードされます。
f:id:tofgame:20190530234002p:plain