首页 > 解决方案 > 如何在 Unity 中获取分配给游戏对象的所有材质

问题描述

在 Unity 中,我们可以通过以下代码获取 GameObject 具有的材质。

Material myMaterial = GetComponent<Renderer>().material;

但是使用上面的代码,我们只能为每个 GameObject 获取一个材质。

然而,实际上,Unity GameObjects 可以有不止一种材质。

如下图所示 在此处输入图像描述

如果逐面分配,每个 GameObject 可以有多个材质。

我尝试使用下面的代码获取多种材料,但没有成功。

List<Material> myMaterials = GetComponent<Renderer>().material;

有没有办法将多个材质分配给一个游戏对象?

标签: c#unity3d

解决方案


您可以使用Renderer.Materialshttps ://docs.unity3d.com/ScriptReference/Renderer-materials.html

List<Material> myMaterials = GetComponent<Renderer>().materials.ToList();

推荐阅读