【问题标题】:Read image and set texture读取图像并设置纹理
【发布时间】:2015-12-25 13:41:48
【问题描述】:
我在统一场景中添加了一个立方体。我想用一张图片来设置这个幼崽的纹理。
我使用下面的代码来加载图像并设置纹理:
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;
我只看到一个灰色立方体,而不是场景中的图像。
【问题讨论】:
标签:
unity3d
renderer
texture2d
【解决方案1】:
你可以只用:
renderer.material.mainTexture = Resources.Load<Texture2D>("image");
请注意,如果找不到图像,那么您将获得 null。
【解决方案2】:
要查看Texture2D 上的更改,请使用text2d.Apply();
【解决方案3】:
这更容易做到。
试试
public GameObject _cube;
void Start()
{
Renderer rend = _cube.GetComponent<Renderer> ();
rend.material.mainTexture = Resources.Load ("image") as Texture;
}
【解决方案4】:
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();
}