Unity 集成到原生 iOS 应用程序中。关闭 Unity 部件并尝试重新打开它时应用程序崩溃

Posted

技术标签:

【中文标题】Unity 集成到原生 iOS 应用程序中。关闭 Unity 部件并尝试重新打开它时应用程序崩溃【英文标题】:Unity integrated into native iOS app. App crashes when closing Unity part and trying to reopen it 【发布时间】:2016-10-31 20:34:42 【问题描述】:

遵循this 教程后,我设法将 Unity 应用程序集成到本机 ios 应用程序中。我目前面临的问题是当我尝试从 Unity 部分返回到原生 iOS 时。

对于 android,我通过以下方式解决了这个问题:

public void ReturnToNative()

#if UNITY_ANDROID
    AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
    AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");
    jo.Call ("goBack");
#endif

#if UNITY_IOS
    Application.Quit();
#endif

原生 Java 方法“goBack”基本上会停止,然后完成一个包含 Unity 部分的活动。

我知道对于 iOS,解决方案不是 Application.Quit(),我应该使用 iOS 插件。

所以我的问题是,这个插件应该做什么?我怎样才能让它发挥作用?

我知道如何创建插件,但我不知道这个特定插件应该包含什么。

非常感谢任何帮助/提示/方向/评论!

PS。我正在使用 Unity 5.4.2 和 Xcode 8.0。 Unity 部分使用 Google Cardboard SDK。

【问题讨论】:

您说您尝试制作一个与应用程序退出不同的 ios 插件。那是什么? @turnipinindia 我添加了一个带有@interface UnityHider : UIResponder &lt;UIApplicationDelegate&gt; - (void)hideUnityWindow; @end 的.h 文件和一个带有#import "UnityHider.h" @implementation UnityHider - (void)hideUnityWindow [[self window] makeKeyAndVisible]; @end 的.m 文件。我根据 Unity 文档 docs.unity3d.com/Manual/PluginsForIOS.html 调用了 hideUnityWindow。这段代码是 iOS 开发者给我的,我只做 Unity 部分 【参考方案1】:

要在 iOS 上使用原生插件,请阅读以下信息:

https://docs.unity3d.com/Manual/NativePlugins.html https://docs.unity3d.com/Manual/PluginsForIOS.html

【讨论】:

谢谢,我知道如何创建和使用插件。我的问题与 what 插件应该做什么有关。我在发布问题几天后找到了解决方案,但我在项目中遇到了一些与集成相关的错误。一旦我解决了这些问题,我会发布我的答案【参考方案2】:

这个问题已经过去几个月了,但如果其他人遇到类似问题,here's我是如何解决这个问题的。

【讨论】:

以上是关于Unity 集成到原生 iOS 应用程序中。关闭 Unity 部件并尝试重新打开它时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

原生 iOS Unity 集成 - AppStore 配置文件导致找不到“UnityFramework/UnityFramework.h”文件

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

Android项目实战(三十九):Android集成Unity3D项目(图文详解)

如何将rn集成到ios原生应用中

开发 Unity 增强现实 vuforia 应用并与原生 android 应用集成

unity3d导出到IOS程序下 集成unity3dAR功能