从“资源”文件夹外部加载资产

时间:2016-07-22 10:09:01

标签: unity3d

我想加载位于“Resources”文件夹之外的“动态”资源(特别是FBX文件),以便用户可以添加/删除/修改文件而无需重新构建项目

为了让不同类型的设备(目标平台是桌面/ android / ios)的用户可以轻松访问这些文件,使用Application.persistentDataPathApplication.streamingAssetsPath似乎是合理的。

现在的问题是:如何加载它们(作为正确的Unity对象)?

  • 这显然无法通过Resources.Load()完成,因为它们位于“Resources”文件夹之外。
  • 使用WWW,检索文件应该很简单,它实际上可以用于某些类型的文件(例如纹理,请参阅http://docs.unity3d.com/ScriptReference/WWW-texture.html),但我看不到加载其他内容的方法。

我的想法是,我希望能够像这样使用那些加载的对象:

(GameObject) Instantiate(loadedObject, new Vector3(0, 0, 0), Quaternion.identity);

我非常感谢您的帮助(最好使用不需要“专业许可证”的解决方案)。

1 个答案:

答案 0 :(得分:2)

我知道在这种情况下您可以尝试使用的两个选项:

  • 为要加载的每个动态资产构建asset bundle,但这似乎并不是您想要的,因为用户仍然必须使用Unity3d来生成资产包。
  • 使用自定义的3D模型加载器(如此post中所述)似乎最适合您的情况。