Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Resources

class in UnityEngine

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

アセットを含むオブジェクトにアクセスすることができます。

エディター上で Resources.FindObjectsOfTypeAll を使用してアセットおよびシーンのオブジェクトを見つけることができます。

"Resources" という名前のフォルダー内にあるすべてのアセットは、Resources.Load 関数を介してアクセスすることができます。 複数の "Resources" フォルダーが存在する場合があり、オブジェクトのロード時に全て確認されます。

このクラスは、アセットにアクセスするときパス名を指定しないで、 代わりにメンバー変数を宣言することによってアセットの参照を可能にし、インスペクターでそれを割り当てています。 この方法を使えば、Unity はビルドする時に自動的にアセットの容量を計算することが出来ます。 同じオブジェクトを生成しないので、ゲームサイズを最小限に抑えることができるようになります。 "Resources" フォルダーにアセットを配置する場合はこれが出来ず、結果的に "Resources" フォルダーの全てのアセットはビルドに含まれます。

パス名で利用する欠点として、スクリプトが直接アセットの場所など必要な情報を持つと、他のスクリプトで使用する際、再利用できず同じものを生成してしまうということです。 その一方で、インスペクターに情報が表示され、設定がしやすいという利点もあるので、場合によって使い分けるようにします。

しかし、インスペクター上でリンクするのでなく、アセットを名前でフェッチしたほうが便利な場合があります。 要するにインスペクター上でオブジェクトに参照を割り当てすることが不都合な場合です。 例えばゲームオブジェクトをスクリプトからプロシージャルに作成して、プロシージャル生成したメッシュにテクスチャを割り当てする場合があるかもしれません。

いくつかのロード済みのアセット、特にテクスチャではシーン上にインスタンスが存在しない場合もメモリを多く消費します。アセットが不要となったときに、このメモリを再び使用可能とするには Resources.UnloadUnusedAssets を使用できます。


        
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Plane); Renderer rend = go.GetComponent<Renderer>(); rend.material.mainTexture = Resources.Load("glass") as Texture; } }

Static 関数

FindObjectsOfTypeAll type で指定した型の全てのオブジェクトを取得します
Loadパスを設定し、Resources フォルダーにあるアセットをロードします
LoadAllResources フォルダー内にあるフォルダー・ファイルのパスを設定し、すべてを読み込みます。
LoadAsyncパスを設定し、Resources フォルダーにあるアセットを非同期でロードします
UnloadAssetメモリから assetToUnload をアンロードします
UnloadUnusedAssets使用していないアセットをアンロードする。