代码修改Material

本文详细探讨了Unity中MeshRenderer组件的Material、Materials和SharedMaterial的区别及应用。Material用于单一材质的设定,Materials则允许使用材质数组管理多个材质,而SharedMaterial修改会影响到所有使用相同材质的对象,提供了一种全局材质管理的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

  • unity的MeshRenderer组件中,关于Material的成员变量有MaterialMaterialsSharedMaterial,有何区别?应该修改谁?

2. 详解

2.1 Material

  • 材质:
    GameObject go = GameObject.Find("LoadedObject");
    go.transform.GetChild(0).GetComponent<MeshRenderer>().material=material;
    

2.2 Materials

  • **材质数组:**此为一个数组,其中保存有多种材质 如图:
    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;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值