はじめに
「Unity Delayed Asset」を Unity プロジェクトに導入することで
Resources フォルダのアセットをファイルパスではなく
Inspector の参照から読み込むことができるようになります
使用例
using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Space ) ) { var texture = Resources.Load<Texture>( "hoge" ); } } }
通常、Resources.Load を使用する場合は上記のようなコードを記述しますが、
using Trisibo; using UnityEngine; public class Example : MonoBehaviour { [SerializeField, DelayedAssetType( typeof( Texture ) )] private DelayedAsset m_textureReference; private void Update() { if ( Input.GetKeyDown( KeyCode.Space ) ) { var texture = m_textureReference.Load() as Texture; } } }
「Unity Delayed Asset」を使用すると、このようなコードで記述できるようになります
通常の書き方と比べてソースコードは冗長になってしまいますが、
Resources.Load で読み込みたいアセットを Inspector で設定しておくことができます
Inspector で設定したアセットは、シーンのロード時には読み込まれず、
Load 関数を呼び出したタイミングで読み込まれるようになっています