如何从原生 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章