0

我需要创建一个 iPad 应用程序,它可以从服务器动态(从 URL)加载 3D 模型(使用 Unity 创建)并显示。在编译期间,3D 对象不会在应用程序内部。

请指导我,有哪些可用的选项,以及我应该查看哪些库/技术?我见过 iSGL3D Nineveh、Cocos3D 等库。但我不确定如何在运行时加载对象。

  • 我可以使用 WebService 来实现吗?
  • 还是使用 Unity 资源包?
  • 还是有其他更好的方法来做到这一点?

==================================================== =

从我得到的回复来看,似乎资产包是这样做的。所以我创建了一个统一项目,然后使用它创建了一个 iOS 项目,并且能够测试基础知识。

现在我想将它与我现有的应用程序集成。在 XCode 5 中使用 ARC 和 storybords 和 coredata 等。

从 Unity 创建的 iOS 项目没有使用 ARC。因此,当我尝试将这两者集成时,我会遇到不同的错误,而我在单独运行这两个项目时不会遇到这些错误。

我尝试为项目启用 ARC,并使用 -fno-objc-arc 从与统一相关的类中禁用 ARC。但是仍然有不同类型的错误。

所以我觉得有更好的方法来做到这一点。您能否告诉我将统一创建的项目与另一个 iOS 项目集成的最佳方法是什么。如果有任何文档或教程,那将非常有帮助。

4

1 回答 1

1

你一定可以!第一步是将资产打包到 Asset Bundles 中:

在某些情况下,使资源可用于项目而不将其作为场景的一部分加载是很有用的。例如,可能有一个角色或其他对象可以出现在游戏的任何场景中,但只会很少使用(这可能是“秘密”功能、错误消息或高分警报等)。此外,您甚至可能希望从单独的文件或 URL 加载资源,以减少初始下载时间或允许可互换的游戏内容。

资产包是资产的外部集合。您可以拥有许多资产包,因此可以拥有许多不同的外部资产集合。这些文件存在于内置的 Unity 播放器之外,通常位于 Web 服务器上,供最终用户动态访问。

在此处查看有关资产包的完整 Unity 开发人员知识库文章

一旦您学会了如何将资产打包成包,您就可以使用以下示例代码轻松加载它们以供在运行时使用:

function Start () {
    var www = WWW ("http:/myservermyBundle.unity3d");
    yield www;
    // Get the designated main asset and instantiate it.
    Instantiate(www.assetBundle.mainAsset);
}

有关更多信息,请参阅此处的完整脚本参考。

于 2013-11-08T00:23:58.747 回答