Unity - 读取图像并设置纹理

时间:2015-12-25 13:41:49

标签: unity3d renderer texture2d

我在统一场景中添加了一个立方体。我想通过使用图像设置这个幼崽的纹理。

我使用下面的代码加载图像并设置纹理:

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;

我只看到一个灰色的立方体而不是场景中的图像。

4 个答案:

答案 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();
    }