小功能⭐️解决Unity无法对一个物体上的所有材质球进行更改

Posted 小星河丨U3D开发支持

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小功能⭐️解决Unity无法对一个物体上的所有材质球进行更改相关的知识,希望对你有一定的参考价值。

文章目录


🟥 目的:

想实现将该cube上的所有材质球New Material换成change材质球



🟧 错误方法:

获取到MeshRenderer,对GetComponent().materials[i]挨个进行赋值。

我们运行后发现,项目不报错,但材质球并没有替换为change。而是将原材质球实例化了一下。也并没什么用。



🟨 正确方法:

对materials的整个数组进行赋值。而不是它其中的单个值。

代码示例:

using UnityEngine;
 
public class test : MonoBehaviour 
 
    [Tooltip("想赋的材质球")]
    public Material material;
 
    void Start () 
 
        Material[] tempMaterial = new Material[GetComponent<MeshRenderer>().materials.Length];
 
        for (int i = 0; i < tempMaterial.Length; i++)
        
            tempMaterial[i] = material;
        
 
        GetComponent<MeshRenderer>().materials = tempMaterial;
    





大家还有什么问题,欢迎在下方留言!



如果你有 技术的问题 项目开发

都可以加下方联系方式

和我聊一聊你的故事🧡

以上是关于小功能⭐️解决Unity无法对一个物体上的所有材质球进行更改的主要内容,如果未能解决你的问题,请参考以下文章

小功能⭐️Unity中利用材质自发光实现物体闪烁效果

小功能⭐️Unity中利用材质自发光实现物体闪烁效果

小功能⭐️Unity获取场景中所有物体

小功能⭐️Unity解决物体移动速度过快不能检测到碰撞

小功能⭐️获取Unity游戏物体上,所挂载组件的名称

小功能⭐️获取Unity游戏物体上,所挂载组件的名称