LoadAllAssetsAtPath在Unity中返回一个空数组

时间:2017-01-11 11:03:32

标签: c# unity3d

我需要访问代码中特定文件中的所有资源。 所以我使用以下代码行:

Object[] objects = AssetDatabase.LoadAllAssetsAtPath("Assets/GameData/Games/01.games");

当我尝试访问数组的元素时(例如foreach循环),objects数组似乎是空的。

但是这个文件确实有一些资产:

enter image description here

我还尝试访问特定资产:

PKGame game = (PKGame)AssetDatabase.LoadAssetAtPath("Assets/GameData/Games/01.games", typeof(PKGame));

但是当我执行代码时,gamenull

我在这里使用正确的方法吗?

1 个答案:

答案 0 :(得分:0)

LoadAllAssetsAtPath是它正在执行的实际任务的欺骗方法名称,该任务是为特定文件加载主资产和子资产。 换句话说,它不会从文件夹中加载所有资产。

某些Unity文件可以具有与之关联的“子资产”,通过这种方法,“主”资产和“子资产”将全部返回。例如,一个Maya文件可能带有网格和与之关联的GameObject。

如果您尝试从路径加载所有资产,则有两个选择:

  1. 将您的对象放入资源文件夹中,然后使用Resources.LoadAll()方法。
  2. 使用System.IO.Directory.GetFiles