如何从原生 iOS 应用程序启动 Unity 3D 应用程序

Posted

技术标签:

【中文标题】如何从原生 iOS 应用程序启动 Unity 3D 应用程序【英文标题】:How to launch Unity 3D App from a native iOS App 【发布时间】:2014-03-27 04:40:28 【问题描述】:

我有一个用 Xcode 5 开发的 ios 项目。我还有一个用 4.3 免费版开发的 Unity 3D 项目。这个 Unity 3D 项目包含我要播放的动画视频。该项目已经为 iOS 构建。我想要的是,我首先启动我的 iOS 应用程序,然后当我点击一个按钮时,这个 Unity 3D 动画应该会播放。在 Unity 3D 中,我还应该能够通过单击后退按钮或其他方式返回 iOS 应用程序。为此,我尝试了以下链接中提到的步骤 - http://alexanderwong.me/post/29949258838/building-a-ios-unity-uiview-uiviewcontroller - 但这没有帮助;产生了很多链接错误。这个链接提到了修改一个名为 AppController 的类。我在 Unity 3D 项目中没有找到这样的类,而是看到了一个名为 UnityAppController 的类,因此我对其进行了修改。

有人可以指导我如何完成上述任务。如果你们中的任何人都可以为我提供一些有效的示例代码,那将有很大的帮助。提前致谢 !

【问题讨论】:

你找到解决方案了吗? 这是一个老问题,但万一其他人发现自己在这里 - 您可以将统一播放器带入您的应用程序(90-110Mb),但它似乎只能在移动设备上全屏运行.我目前正在努力让一些原生 ui 显示在顶部,比如导航栏等 - 还没有运气。 【参考方案1】:

如果您有 2 个不同的应用程序:您的原生应用程序和 Unity 应用程序,您可以执行以下操作:

与其他应用程序通信: https://developer.apple.com/library/IOs/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW18

您必须为要打开的应用注册一个自定义 URL 架构: https://developer.apple.com/library/IOs/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW50

然后,要打开注册了自定义 URL 架构的应用程序,您可以调用以下代码,例如:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mycustomurlschema://app"]];

要在您想要切换回本机应用程序时从您的 Unity 应用程序调用它,您必须按照以下说明执行本机代码: 为 iOS 构建插件: https://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html

但是,如果您想将本机应用程序和 Unity 应用程序合并为一个应用程序,请告诉我您是否知道如何执行此操作。我在互联网上搜索了一个好的解决方案,但我能找到的唯一解决方案是 Unity 在后台永久运行并在 Unity 视图上绘制一些原生视图的项目,这似乎不是一个很好的解决方案,而且非常麻烦。

【讨论】:

以上是关于如何从原生 iOS 应用程序启动 Unity 3D 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

iOS与Unity3d交互

在 iOS 原生应用中使用 FBX 文件和 3D 模型

ios原生嵌入unity

如何使用 Unity3D 让网络摄像头自动对焦

Unity3D 实现简单的语音聊天 [iOS版本]

在 Unity3D 游戏中自定义 iOS 音量 HUD