テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

ロードの待ち時間を短くする(その3/Resources.Load)

■Resources.Loadで読み込む

Resources.Loadで読み込む手法について。

Resources.Loadは、「Resources」フォルダ下にあるプレハブやテクスチャを
インスタンスとして配置できる。
これで、テクスチャの差し替えやBGMの追加等を追加で読み込める。

とは言え、小物ならともかくステージやUIといった大きな物を読み込むときは、
まるごとプレハブ化するかランタイムで組み立てる事になる。

プレハブのプレハブは、参照が切れてしまうみたいなので、注意。

private Dictionary textureList = new Dictionary();
void GetTexture(string texturename)
{
if( textureList.ContainsKey( texturename ) == false )
{
Texture2D t = Resources.Load(texturename) as Texture2D;
textureList.Add(texturename, t);
}
return textureList[texturename];
}

■注意点は2点

注意点は2点
・非同期メソッドではないので、一瞬止まる
・リソースは名前で取得するので、命名規則が必要

一瞬止まる問題は、リソースを細かく分断しておいて読むとかすれば
ほとんど意識することなく読める気がする。
(管理が面倒そうなので、そこはトレードオフで)
ドローコール問題を知る前はそれで何とかなると思ってました(´・ω・`)

[Unity][Unity3d]「第4回 渋谷Unity技術勉強会xコロプラUnity事例発表」に参加して来ました(強火で進め)
http://d.hatena.ne.jp/nakamura001/20120426/1335464256