我需要创建一个iPad应用程序,它可以从服务器动态(从URL)加载3D模型(使用Unity创建)并显示。在编译期间,3D对象不会在应用程序内部。
请指导我,有什么选择可以做到这一点,我应该看看哪些库/技术? 我见过iSGL3D Nineveh,Cocos3D等库。但是我不确定如何在运行时加载对象。
=============================================== ====
从我得到的回复中,似乎资产捆绑是实现目标的方式。所以我创建了一个Unity项目,然后使用它创建了一个iOS项目,并且能够测试基础知识。
现在我想将它与我现有的应用程序集成。这是在XCode 5和使用ARC和storybords和coredata等..
从Unity创建的iOS项目不使用ARC。因此,当我尝试集成这两个时,我会得到不同的错误,当我单独运行这两个项目时,我得不到这些错误。
我尝试为项目启用ARC,并使用-fno-objc-arc从统一相关类中禁用ARC。但仍有不同类型的错误。
所以我觉得有更好的方法来做到这一点。你能否告诉我将统一创建的项目与另一个iOS项目集成的最佳方法是什么?如果有任何文档或教程,那将非常有用。
答案 0 :(得分:1)
你确定可以!第一步是将资产打包成资产包:
在某些情况下,将资产提供给a是有用的 项目没有加载它作为场景的一部分。例如,那里 可以是出现在任何场景中的角色或其他物体 游戏,但不经常使用(这可能是一个 “秘密”功能,错误消息或高分警报,说)。 此外,您甚至可能希望从单独的文件加载资产或 用于减少初始下载时间或允许可互换游戏的URL 内容。
Asset Bundle是一个外部资产集合。你可以有很多 资产包,因此许多不同的外部集合 资产。这些文件通常存在于构建的Unity播放器之外 坐在Web服务器上,供最终用户动态访问。
查看完整的Unity开发人员知识库article on Asset Bundles here。
一旦您学会了如何将资产打包成捆绑包,您可以使用以下示例代码轻松加载它们以便在运行时使用:
function Start () {
var www = WWW ("http:/myservermyBundle.unity3d");
yield www;
// Get the designated main asset and instantiate it.
Instantiate(www.assetBundle.mainAsset);
}
有关详细信息,请参阅完整脚本参考here。