您的位置:首页 > 移动开发 > Unity3D

unity小技巧备忘录1使用代码单物体同时存在多个材质,使用代码更换指定材质

2020-03-01 21:38 1186 查看

1单物体同时存在多个材质,更换指定材质

首先直接尝试替换材质数组单个元素

public Material mymt;
void Replace()
{
GetComponent<Renderer>().materials[2]=mymt;
}

事实证明上面的方法并没有什么卵用

网上找了半天,经过测试,目前了解到大概有三种方法可行

  1. 新建材质数组,直接更换材质数组。优点就是任何材质都可以替换。
    public Material[] customMt; public void Replace() { GetComponent<Renderer>().materials = customMt; }
  2. 直接替换目标材质的贴图,这种方法有弊端,就是如果连材质金属度等属性都要改的时候,就很麻烦了。
public Texture texture;
public void Replace()
{
GetComponent<Renderer>().materials[2].mainTexture = texture;
}
  1. 比较实用的方法来了,使用Material .CopyPropertiesFromMaterial方法来直接修改材质各项属性,其实就是将上面目标材质的属性复制到目标材质,这种方法只适用于同种材质之间。
public Material mymt;
public void Replace()
{
GetComponent<Renderer>().materials[2].CopyPropertiesFromMaterial(mymt);
}

第一次写自己的博客,以后我也是大佬啦(梦真香)!

  • 点赞
  • 收藏
  • 分享
  • 文章举报
一只木的感情的咸鱼 发布了1 篇原创文章 · 获赞 0 · 访问量 53 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐