c# - 如何在 Unity 中获取分配给游戏对象的所有材质
问题描述
在 Unity 中,我们可以通过以下代码获取 GameObject 具有的材质。
Material myMaterial = GetComponent<Renderer>().material;
但是使用上面的代码,我们只能为每个 GameObject 获取一个材质。
然而,实际上,Unity GameObjects 可以有不止一种材质。
如果逐面分配,每个 GameObject 可以有多个材质。
我尝试使用下面的代码获取多种材料,但没有成功。
List<Material> myMaterials = GetComponent<Renderer>().material;
有没有办法将多个材质分配给一个游戏对象?
解决方案
您可以使用Renderer.Materials
:https ://docs.unity3d.com/ScriptReference/Renderer-materials.html
List<Material> myMaterials = GetComponent<Renderer>().materials.ToList();
推荐阅读
- c++ - 打印 1 到 n 个数字时,我的递归程序出现运行时错误
- mysql - 从一个月的 1-15 和 16-31 中选择总和
- sql - 在 SELECT 中用 'NA' 替换 NULL
- azure-active-directory - 多租户应用程序中的 SSO:恶意管理员怎么办?
- sql - 如何根据重复的行值合并聚合函数结果 | SQL 甲骨文
- react-bootstrap-table - react-bootstrap-table-next 中的 onTableChange 函数总是返回 undefined
- asp.net-core - Blazor 布局中的顶部菜单
- c# - Acumatica 在 2020 r2 上发布自定义表格和自定义表格
- javascript - Discord.js/javascript 出现错误。如果(命令 ==='清除')。ReferenceError:命令未定义
- react-bootstrap - 在 Button (react-bootstrap) 中添加 SVG 图像作为图标?