Version: 2019.1 (switch to 2018.3 or 2017.4)
LanguageEnglish
  • C#

Resources.Load

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static T Load(string path);

Parameters

pathPathname of the target folder.

Returns

T The requested asset returned as a Type.

Description

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"); } }

public static Object Load(string path);
public static Object Load(string path, Type systemTypeInstance);

Parameters

pathPathname of the target folder. When using the empty string (i.e., ""), the function will load the entire contents of the Resources folder.
systemTypeInstanceType filter for objects returned.

Returns

Object The requested asset returned as an Object.

Description

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; } }

Did you find this page useful? Please give it a rating: