unity 代码给动态添加的物体添加贴图?

  1. 添加贴图

unity的Asset文件夹下新建文件夹Resources,在Resources下创建文件夹Textures。把texture.png文件放入文件夹Textures下.

// 方法1:
// 注意:Resources.Load()只能在Resources文件夹下读取,别的不行,所以该路径名默认在Asset/Resources下,且texture不要加文件后缀
this.gameObject.GetComponent<MeshRenderer>().Material.mainTexture=(Texture)(Resources.Load("Textures/texture"));
// 方法2:
this.gameObject.GetComponent<MeshRenderer>().material.mainTexture = new WWW("file://C:\\Users\\Desktop\\ProceduralGrid\\Assets\\Resources\\Textures\\texture.png").texture;
  1. 添加材质

在文件夹ResourcesResources下创建文件夹Materials。把材质球文件cubeMat放入文件夹Materials下.

材质球文件建立:
Materials文件夹右键->Create->Material产生名称格式为New Material的材质,重命名cubeMat。

// 添加材质
GameObject.Find("game").GetComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/cubeMat");

3.给材质的shader赋贴图

// 找到材质的shader
GameObject.Find("game").GetComponent<MeshRenderer>().material.shader = Shader.Find("Custom/MixedTexturesHalfLambert");
// 设置由shader属性表示的材质面板上的贴图,"_MainTexture"是shader属性名
GameObject.Find("game").GetComponent<MeshRenderer>().material.SetTexture("_MainTexture", (Texture)Resources.Load("Textures/TerrainRock"));
                

你可能感兴趣的:(unity3d游戏开发)