如何查找某种类型的所有资产?

时间:2015-04-08 22:45:05

标签: c# unity3d

在我的Unity项目中,有几个ArmourType类实例(这些是资产,可编写脚本的对象)。我试图在检查器的下拉列表中显示这些,这是有效的。但是,我使用

List<ArmourType> armourTypes = Resources.FindObjectsOfTypeAll<ArmourType>();

找到所有这些实例。这只会查找加载到内存中的对象,因此偶尔只能找到一些必需的资源。这是记录在案的,所以不是一个错误,但有时非常烦人。

所以我的问题是,是否有一种不同的方式来获取所有这些资产,这些资产确实会返回那些未加载到内存中的资产?或者有没有办法让Unity在查找资源时加载资产?

注意:我使用Unity5和c#。

1 个答案:

答案 0 :(得分:12)

这是你在找什么?

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文件夹中(这确保它们将包含在构建中,即使没有在场景中链接)并使用:

Resources.LoadAll<ArmourType>("");