!!!リソースとしてObjectを取得 Unityのプロジェクトで、 Assets xxxx.unity [Scripts] [Resources] <== コレ photo_leaf_texture.png [materials] leafMaterial.mat のように「Resources」フォルダを作成し、この中にテクスチャファイルやマテリアルファイル(mat)を格納しておきます。 「Resources」フォルダはどの階層でも指定できるため、Assetを配布する際にResourcesフォルダを含めておく、ということもできます。 !!リソースの読み込み Texture2D tex = Resources.Load("photo_leaf_texture", typeof(Texture2D)) as Texture2D; のようにするとテクスチャの読み込み。 もしくは以下のように指定。 Texture2D tex = Resources.Load("photo_leaf_texture"); Material m = Resources.Load("materials/leafMaterial", typeof(Material)) as Material; のようにするとマテリアルの読み込みができます。 なお、ファイル拡張子は指定しないようにします。 読み込みに失敗するとnullが返ります。 この機能はandroid/iOSでも使用でき、リソースを分離しておき遅延で読み込むことでUnityで作ったアプリの起動時間を短縮させる効果があります。 !!リソースの解放 使用が終わった後は、 Resources.UnloadAsset(m); のようにして解放してあげます(メモリの節約)。 アプリ終了時にResources.UnloadAssetを呼ばないと、Unity終了時にフリーズすることがありました(これが原因と思われるけど自信なし)。 アプリ終了の判定は「[[アプリケーションの終了|unity_quit]]」を参照。 !!読み込んだTexture2DでGetPixelsする Resourcesとして読み込んだ画像(Texture2D)より、「GetPixels」を呼ぶとエラーになります。 回避方法は「[[Texture2DからGetPixelする|unity_script_texture2d_getpixel]]」を参照。 ---- {{lastmodified}}