Unity使用脚本更换物体材质球


???
思路:获取物品Mesh Render下的Materials,进行一层或者多层的替换

在这里插入图片描述

代码(按A,B切换材质球):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using UnityEngine;

public class SwitchMaterial : MonoBehaviour
{
    public  Material M1, M2;      // 贴图

    void Update()
    {
        if (Input.GetKey(KeyCode.A))
        {
            this.transform.GetComponent<Renderer>().material = Mat2;
        }

        if (Input.GetKey(KeyCode.B))
        {
            this.transform.GetComponent<Renderer>().material = Mat1;
        }
    }
}

???
对于双层的材质球,可采用数组的形式(修改if内的语句):

1
2
3
Material M1, M2;
Material[] Mat = new Material[2] { M1, M2 };
this.transform.GetComponent<Renderer>().materials = Mat;

???

P.S.还可以配合OnTriggerEnter()之类的碰撞检测方法 实现角色走进区域更换材质球的玩法。
???