如何通过C#脚本为游戏对象分配多种材质?

到目前为止,我尝试过的是:

public GameObject go;
public Material Mat1;
public Material Mat2;
void Start()
{
     //this does not work
     go.GetComponent<Renderer>().materials[0] = Mat1;
}

最佳答案

您不能直接更新物料,但是需要创建一个新的物料阵列并进行分配。

void Start()
    {
        //create your materials
        var yourMaterials = new Material[] { Mat1, Mat2 };
        //assign it
        go.GetComponent<Renderer>().materials = yourMaterials ;
    }


您也可以检查documentation


  请注意,就像Unity返回的所有数组一样,这将返回的副本。
  材料阵列。如果要更改其中的某些材料,请获取
  值,更改条目并将物料放回原处。

关于c# - 通过脚本向游戏对象分配多种 Material ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56769176/

10-11 03:04