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