我在统一场景中添加了一个立方体。我想通过使用图像设置这个幼崽的纹理。
我使用下面的代码加载图像并设置纹理:
Texture2D text2D = new Texture2D(Screen.width, Screen.height,TextureFormat.RGB24 , false);
text2D.SetPixels(((Texture2D)Resources.Load("image")).GetPixels());
MeshRenderer renderer = cube.GetComponent<MeshRenderer>();
renderer.material.mainTexture = text2D;
我只看到一个灰色的立方体而不是场景中的图像。
答案 0 :(得分:1)
只有以下内容可以缩短这一点:
renderer.material.mainTexture = Resources.Load<Texture2D>("image");
请注意,如果找不到图像,则会得到null。
答案 1 :(得分:1)
要查看Texture2D
上的更改,请使用text2d.Apply();
答案 2 :(得分:1)
这更容易做到。
尝试
public GameObject _cube;
void Start()
{
Renderer rend = _cube.GetComponent<Renderer> ();
rend.material.mainTexture = Resources.Load ("image") as Texture;
}
答案 3 :(得分:0)
LoadImage 方法也可以用来完成这项工作。但是在这里,您必须以 .bytes 格式传入图像。
示例:
public TextAsset image;
void Start()
{
var texture = new Texture2D(100, 100, TextureFormat.ARGB32, false);
texture.LoadImage(image.bytes);
GetComponent<Renderer>().material.mainTexture = texture;
texture.Apply();
}