Unity3d 关闭Android应用程序中的Unity

Unity3d 关闭Android应用程序中的Unity,unity3d,Unity3d,事实上,我有一个安卓应用程序,可以运行我的Unity3D游戏。一切都配合得很好。现在,当我在我的应用程序中启动Unity时,游戏会正常启动,但如果我尝试回到我的AndroidApp意图,我会收到一个“信号11 SIGSEGV”,Unity刚刚关闭 当我在Unity中绘制菜单并按下“退出”按钮关闭Unity时会发生这种情况,但如果我对Android back执行相同操作,buton Unity将正常关闭,不会出现问题 我在Unity中使用插件来实现这种行为 我在团结方面的职能: public vo

事实上,我有一个安卓应用程序,可以运行我的Unity3D游戏。一切都配合得很好。现在,当我在我的应用程序中启动Unity时,游戏会正常启动,但如果我尝试回到我的AndroidApp意图,我会收到一个“信号11 SIGSEGV”,Unity刚刚关闭

当我在Unity中绘制菜单并按下“退出”按钮关闭Unity时会发生这种情况,但如果我对Android back执行相同操作,buton Unity将正常关闭,不会出现问题

我在Unity中使用插件来实现这种行为

我在团结方面的职能:

public void ExitGame()
{
    #if UNITY_ANDROID
    AndroidJavaClass unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); 
    AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject> ("currentActivity");      
    activity.Call ("ReturnToMainActivity", "Hello");
    #endif
}
同样,如果我在Unity应用程序中按下Android后退按钮,这也能正常工作,但当我尝试在Unity GUI上执行同样的操作时,我收到了一个“信号11 SIGSEGV”。在这两种情况下,logcat都会打印消息“FinishUnity from Android”,因此我认为Unity会正常调用该函数,但在某些情况下会崩溃

有人面临同样的问题,但我不知道他是如何解决的


好的,我只是想知道怎么做

在Android端的我的函数中:

public void ReturnToMainActivity (String someText)
{
    UnityPlayer.currentActivity.runOnUiThread(new Runnable(){
        public void run()
        {
            Log.v("Unity", "Aplicacion de Unity terminada desde Android" );
            ElJuegoActivity.this.mUnityPlayer.quit();
            UnityPlayer.currentActivity.finish();
        }
    });
}
这就是诀窍。没有问题


注:这是OP最初在问题末尾给出的“答案”。我把它分成了自己的答案。如果OP返回并想自己发布,请务必ping我

,但是这个mUnityPlayer.quit()要花很多时间才能退出unity玩家。
public void ReturnToMainActivity (String someText)
{
    UnityPlayer.currentActivity.runOnUiThread(new Runnable(){
        public void run()
        {
            Log.v("Unity", "Aplicacion de Unity terminada desde Android" );
            ElJuegoActivity.this.mUnityPlayer.quit();
            UnityPlayer.currentActivity.finish();
        }
    });
}