簡體   English   中英

從統一活動返回到android studio中的MainActivity

[英]Return from unity activity to MainActivity in android studio

我在 android studio 中制作了一個應用程序,在 Unity 中制作了一個游戲。 現在我想將這兩者結合在一起。 android調用unityNativePlayer啟動沒問題。 但是當我想從統一活動返回到 MainActivity.java 時,它會變成這樣:我在統一游戲中有一個退出按鈕,調用 Application.exit(); 當我按下按鈕時沒有任何反應。 有錯誤嗎?

Application.exit()在 Unity API 中不存在。

對於編輯器,使用UnityEditor.EditorApplication.isPlaying = false ;

使用Application.Quit()進行構建。

最好使用編輯器預處理器來執行此操作,否則您將在構建包含UnityEditor.EditorApplication.isPlaying = false;代碼時UnityEditor.EditorApplication.isPlaying = false;問題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 中為類命名的任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM