c# - 将材料添加到列表
问题描述
我无法将材料添加到列表中。我的对象分配了多种材料,我将所有这些材料添加到指定列表中。我收到的错误是cannot convert from 'UnityEngine.Material[]' to 'UnityEngine.Material'
. 我在这里做错了什么?
public GameObject[] myObjs;
private List<Material> myObjs_mats = new List<Material>();
void Start () {
for(int i = 0; i<myObjs.Length; i++){
myObjs_mats.Add(myObjs[i].GetComponent<Renderer>().materials);
}
解决方案
GetComponent<Renderer>().materials
返回一个数组。但是由于您使用的是该Add
方法,因此一次只能添加一项。
所以要么Add
在循环中调用,要么只使用AddRange
而不是Add
.
推荐阅读
- neo4j - Neo4j - 通过关系创建导入数百万数据
- javascript - 如何在 javascript Object.assign 方法中使用所有函数参数
- .net - IEnumerable.Min() 使用通用对象返回奇怪的结果
- mysql - 我可以选择每一行并限制具有不同值的行吗?
- python - 何修复 playsound excpetion “playbin.set_state 返回
我正在尝试使用该
playsound
模块在 Python 中制作一个简单的节拍器。但是当我运行它时,出现以下错误:Traceback (most recent call last): File "/run/media/mb/Vol
- azure-active-directory - Microsoft Botframework V4 虚拟助手 Azure AD 身份验证
- c - 如何让 C 程序发出 HTTP 请求并读取响应?
- c# - 如何更改一定数量的按钮(x)的不透明度,而不是一一写出来?(C#)
- android - 在 React-Native 中存储不可更改数据的正确方法
- html - Html 日期格式更改为月份日期年份