在我的unity项目a中,有几个类armourtype的实例(这些是资源,可编写脚本的对象)。我正试图在检查员的下拉列表中显示这些,这是有效的。但是,我用
List<ArmourType> armourTypes = Resources.FindObjectsOfTypeAll<ArmourType>();
找到所有这些实例。这只会找到加载到内存中的对象,因此偶尔只会找到一些必需的资源。这是有记录的,所以不是一个bug,但有时非常烦人。
所以我的问题是,有没有一种不同的方法来获取所有这些资产,并返回那些没有加载到内存中的资产?或者,是否有办法让unity在查找资产时加载它们?
注:我用的是5号机组和C。
最佳答案
这就是你要找的吗?
string[] guids = AssetDatabase.FindAssets ("t:ArmourType", null);
foreach (string guid in guids) {
Debug.Log (AssetDatabase.GUIDToAssetPath(guid));
}
http://docs.unity3d.com/ScriptReference/AssetDatabase.FindAssets.html
assetdatabase是一个编辑器脚本。如果您想在游戏中执行类似的操作,请将相关脚本放在资源文件夹中(这样可以确保即使未链接到场景中,它们也将包含在生成中),并使用:
Resources.LoadAll<ArmourType>("");