我已經在android studio中製作了一個應用程序,並且在Unity中製作了一款遊戲。現在我想把這兩者結合在一起。在調用unityNativePlayer的android中啓動是沒有問題的。但是當我想從團結活動回到MainActivity.java時,就會發現:我在Unity遊戲中有一個退出按鈕,調用Application.exit();當我按下按鈕時沒有任何反應。有錯誤嗎?我沒有把它變成C#和團結。從Unity活動返回到android studio中的MainActivity
1
A
回答
1
Application.exit()
在Unity API中不存在。
對於編輯器,使用UnityEditor.EditorApplication.isPlaying = false
;
使用Application.Quit()
爲您的版本。
最好使用Editor預處理器來做到這一點,否則在構建包含其他平臺代碼行UnityEditor.EditorApplication.isPlaying = false;
的代碼時會出現問題。
下面的代碼應該解決了這個問題:
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
請明白,你應該不必須有用於移動設備的任何退出UI Button
。它會工作,但這是一個糟糕的設計。這是物理主頁(iOS)或返回(Android)按鈕的用途。
編輯:
你只是想從Java退出團結的活動。該功能應該做到這一點。
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#從統一調用Java功能。
void exitUnity()
{
AndroidJavaClass myClass = new AndroidJavaClass("com.companyName.productName.MyClass");
myClass.Call("quitUnityActivity");
}
確保不管你在你的Android工作室命名你的類來代替com.companyName.productName.MyClass
。
你是對的,我現在可以退出整個程序,但我只想退出unitx y的活動。有沒有辦法做到這一點? –
@EmanuelGraf我真的很想知道你是如何設置這個的......你用Java製作的Android應用程序正在加載Unity活動? – Programmer
是的,它是一個大型應用程序,它在其中託管遊戲。當用戶只想退出遊戲時,應該再次打開應用程序的主要活動。 –