在Unity studio中从统一活动返回到MainActivity

时间:2016-05-13 00:04:53

标签: java c# android android-studio unity3d

我在Android工作室制作了一个应用程序,在Unity中制作了一款游戏。现在我想把这两者结合起来。在调用unityNativePlayer的android中启动没问题。但是当我想从Unity活动回到MainActivity.java时,它会出现这样的情况:我在统一游戏中有一个退出按钮,调用Application.exit();当我按下按钮时没有任何反应。有错吗?

1 个答案:

答案 0 :(得分:1)

Unity API中不存在

Application.exit()

对于编辑器,请使用UnityEditor.EditorApplication.isPlaying = false;

使用Application.Quit()进行构建。

最好使用编辑器预处理器执行此操作,否则您将无法为其他平台构建包含UnityEditor.EditorApplication.isPlaying = false;代码行的代码。

下面的代码应该可以解决这个问题:

#if UNITY_EDITOR
     UnityEditor.EditorApplication.isPlaying = false;
#else
        Application.Quit();
#endif

请理解,对移动设备有任何退出UI Button。它会起作用,但这是一个糟糕的设计。这就是物理主页(iOS)或后退(Android)按钮的用途。

修改

您只想从Java退出Unity Activity。该功能应该这样做。

public void quitUnityActivity ()
{
    UnityPlayer.currentActivity.runOnUiThread(new Runnable(){
        public void run()
        {
            Log.v("Unity", "Unity Activity Exited!" );
            this.mUnityPlayer.quit();
            UnityPlayer.currentActivity.finish();
        }
    });
}

如果这不起作用,请尝试

public void quitUnityActivity()
{
    Log.v("Unity", "Unity Activity Exited!");
    this.mUnityPlayer.quit();
    UnityPlayer.currentActivity.finish();
}

使用C#从Unity调用Java函数。

void exitUnity()
{
    AndroidJavaClass myClass = new AndroidJavaClass("com.companyName.productName.MyClass");
    myClass.Call("quitUnityActivity");
}

确保将com.companyName.productName.MyClass替换为您在Android Studio中命名的类别。