【问题标题】: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();
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-05
          • 1970-01-01
          相关资源
          最近更新 更多