2016-07-22 107 views
2

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

为了让用户在不同种类的设备(目标平台是desktop/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);

我会很感激你的帮助(最好与不需要的解决方案“专业执照”)。

+0

看看[这个](http://forum.unity3d.com/threads/loading-fbx-model-from-a-webserver.128344/) –

+0

谢谢!出于某种原因,我没有遇到过这样的问题:/(我虽然对答案并不满意) – qdrien

回答

2

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

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