1. 前言
- unity的MeshRenderer组件中,关于Material的成员变量有
Material
,Materials
和SharedMaterial
,有何区别?应该修改谁?
2. 详解
2.1 Material
- 材质:
GameObject go = GameObject.Find("LoadedObject"); go.transform.GetChild(0).GetComponent<MeshRenderer>().material=material;
2.2 Materials
- **材质数组:**此为一个数组,其中保存有多种材质 如图:
GameObject go = GameObject.Find("LoadedObject"); go.transform.GetChild(0).GetComponent<MeshRenderer>().materials.SetValue(material, 0);
2.3 SharedMaterial
- 公共材质: 修改sharedMaterial将更改使用此材质的所有对象的外观,并更改存储在项目中的材质设置。
2.4 对比Material & SharedMaterial
- 下面两句代码 前者直接获取MeshRenderer中的材质 后者则是获取之后再利用获取的值实例化一个材质(new一个) 但值得注意的是 调用多次后 后者也不会再重新实例化 二是直接引用实例化过的Material
Material sharedMaterial = meshRenderer.sharedMaterial; Material material = meshRenderer.material;