- Home /
Load texture by name
I need to use this command to load texture and assign it to a plane.
go.renderer.material.mainTexture = Resources.Load("texturename", Texture2D);
I need to load different textures based on the value of an index. i=1 -> texture1 i=2 -> texture2 etc...
There is a way to do something like this and use different names by script?
go.renderer.material.mainTexture = Resources.Load("texturename + i", Texture2D);
I think I convert int value to string, but I don't know how...Somebody help? Thanks.
go.renderer.material.mainTexture = Resources.Load("texturename + i", Texture2D);
example :
int i = 344 ;
void Start()
{
Debug.Log("texturename + i") ;
Debug.Log("texturename" + i) ;
}
Answer by clunk47 · Jul 28, 2013 at 07:27 PM
Say you have textures named with an integer on the end for example. Tex0, Tex1, Tex2, Tex3. Then say you have 4 planes you want to put into an array, and use the index of that array to determine what texture will be applied from the texture folder. Here's a pretty simple way of doing this.
//Example.cs
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour
{
public MeshRenderer[] planes;
void Start()
{
for(int i = 0; i < planes.Length; i++)
{
planes[i].material.mainTexture = Resources.Load("Tex" + i.ToString()) as Texture2D;
}
}
}
Your answer
Follow this Question
Related Questions
How can I load texture files that are outside of my project folders? 1 Answer
How would I cast "someString" in the following code in order to get it to work? 1 Answer
Will an exported game use more memory if I would use the same texture on more surfaces? 1 Answer