path | Pathname of the target folder. |
T The requested asset returned as a Type.
Loads an asset stored at path
in a folder called Resources.
Returns the asset at path
if it can be found otherwise returns null.
Only an object of type T
will be returned.
The path
is relative to any folder named Resources
inside the Assets folder of your project.
More than one Resources folder can be used. For example, a project may have Resources
folders called Assets/Resources
and Assets/Guns/Resources
. String names that include
Assets
and Resources
are not needed. For example the loading of a GameObject at
Assets/Guns/Resources/Shotgun.prefab
does not use the folder names.
Also, if Assets/Resources/Guns/Missiles/PlasmaGun.prefab
exists it will
be loaded using Prefabs/Missiles/PlasmaGun
.
If you have multiple Resources folders you cannot duplicate use of
an asset name.
Another example of the Resources
folder. In Resources
there are two files, fancyA
and fancyB
. Resources
also has Resources2
folder. This folder contains two files, fancyA2
and fancyB2
. Finally, Resources2
has a folder called Resources3
with a single file also called fancyB
. (This means the file in Resources3
has the same name as in Resources
.) The files in Resources
can be loaded as fancyA
and fancyB
with no need for the folder hierarchy Assets/Resources
. Also, the files in Resources2
can be loaded. Loading these require the folder directory so an example load will be Resources2/fancyB2
. Finally, loading from Resources3
will be Resources2/Resources3/fancyB
.
Note: Extensions must be omitted.
Note: All asset names and paths in Unity use forward slashes, paths using backslashes will not work.
// Load assets from the Resources folder. Ignore other named and typed assets. using UnityEngine;
public class ExampleClass : MonoBehaviour { void Start() { //Load a text file (Assets/Resources/Text/textFile01.txt) var textFile = Resources.Load<TextAsset>("Text/textFile01");
//Load text from a JSON file (Assets/Resources/Text/jsonFile01.json) var jsonTextFile = Resources.Load<TextAsset>("Text/jsonFile01"); //Then use JsonUtility.FromJson<T>() to deserialize jsonTextFile into an object
//Load a Texture (Assets/Resources/Textures/texture01.png) var texture = Resources.Load<Texture2D>("Textures/texture01");
//Load a Sprite (Assets/Resources/Sprites/sprite01.png) var sprite = Resources.Load<Sprite>("Sprites/sprite01");
//Load an AudioClip (Assets/Resources/Audio/audioClip01.mp3) var audioClip = Resources.Load<AudioClip>("Audio/audioClip01"); } }
path | Pathname of the target folder. When using the empty string (i.e., ""), the function will load the entire contents of the Resources folder. |
systemTypeInstance | Type filter for objects returned. |
Object The requested asset returned as an Object.
Loads an asset stored at path
in a Resources folder.
Returns the asset at path
if it can be found otherwise returns null.
Only objects of type
will be returned if this parameter is supplied.
The path
is relative to any Resources folder inside the Assets folder of your project, extensions must be omitted.
Note: All asset names and paths in Unity use forward slashes, paths using backslashes will not work.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { // Assigns a texture named "Assets/Resources/glass" to a Plane. void Start() { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Plane); var rend = go.GetComponent<Renderer>(); rend.material.mainTexture = Resources.Load("glass") as Texture; } }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { // Instantiates a Prefab named "enemy" located in any Resources // folder in your project's Assets folder. GameObject instance = Instantiate(Resources.Load("enemy", typeof(GameObject))) as GameObject; } }