从文件夹中获取预制件,然后转换为列表gameobject
本文关键字:转换 然后 列表 gameobject 文件夹 获取 | 更新日期: 2023-09-27 18:04:45
我想把所有预制件放在某个文件夹中,然后将其转换为列表
my code:
this.list = (List<GameObject>) (Resources.LoadAll<GameObject>("items")).ToList<GameObject>(); // this code not working
this.list = AssetDatabase.LoadAllAssetsAtPath("items").ToList<GameObject>();
在最后一行,我得到以下错误:
" UnityEngine。Object[]'不包含成员
ToList
和最佳扩展方法重载' System.Linq.Enumerable。list (this System.Collections.Generic.IEnumerable)'有一些无效参数'。
你需要将object转换为gameObject,你可以尝试下面的代码。:)
this.list = (List<GameObject>) (Resources.LoadAll<GameObject>("items")).ToList<GameObject>();
List<object> objList;
objList = AssetDatabase.LoadAllAssetsAtPath("items").ToList<object>();
List<GameObject> list2 = new List<GameObject>();
foreach(Object item in objList)
{
GameObject obj = item as GameObject;
list2.Add(obj);
}
ToArray()
是属于Linq命名空间的方法。只需将using System.Linq;
添加到您的代码中。
但是,第二行代码也有问题。它返回UnityEngine.Object
的列表,而您正在尝试创建GameObjects
的列表。你可以这样强制转换:
var objectsArray = AssetDatabase.LoadAllAssetsAtPath("items");
this.list = new List<GameObject>(objectsArray.Cast<GameObject>());