unity3d - scenes - El juego móvil se reinicia al usar Application.Quit
unity exit application android (2)
De acuerdo, entonces actualizo mi antiguo proyecto 4.6 Unity en Unity 5.0. En general, el proceso fue relativamente sencillo, pero ahora mi botón Salir no funciona cuando compilo para Android.
Y recibo un mensaje muy extraño a través de logcat:
E/Unity (23691): RenderTexture warning: Destroying active render texture. Switching to main context.
E/Unity (23691):
E/Unity (23691): (Filename: Line: 295)
E/Unity (23691):
Mi código de abandono en mi script GameController es bastante simple:
public void Quit () {
Application.Quit();
}
void OnApplicationQuit () {
if (showAds) { //just in case
adController.DestroyAll();
}
}
¿Qué debería estar buscando? ¿Es un problema de textura? Tengo un sombreador personalizado, pero el juego funcionó bien con Unity 4.6 antes.
@ theprisoner6 aswer no funciona para mí, pero para referencia la otra opción es ocultar una aplicación (moverla hacia atrás). Esto ha agregado el valor de que si el Android decide que vale la pena mantener la aplicación en la memoria, evitará cargar una aplicación que debería mejorar la experiencia del usuario. Esto podría manejarse como un complemento, pero bueno, ¡no hay necesidad de eso! Código C # muy simple:
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
var movedToBack = jo.Call<bool>("moveTaskToBack", true);
Cambie ese código con Application.Quit()
y listo.
Entonces, todo volvió a Unity5 y cómo integra plugins más antiguos como Admob. Aparentemente, ya no se necesita ProxyActivity para las compilaciones de Android. Así que eliminé completamente el siguiente del archivo AndroidManifest.xml :
<activity android:name="com.unity3d.player.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" >
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Y luego movió el <intent-filter>
a la UnityPlayerActivity:
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Ahora Application.Quit () no funciona!
Complete AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.example.admobtest" android:versionName="1.0" android:versionCode="1">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<!-- Mobile Ads Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false">
<!-- meta-data tag for Google Play services -->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" >
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<meta-data android:name="android.app.lib_name" android:value="unity" />
</activity>
<activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" >
</activity>
<!-- Google Mobile Ads Activity -->
<activity android:name="com.google.android.gms.ads.AdActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
</activity>
<!-- PurpleBrain AdBuddiz Activity -->
<activity android:name="com.purplebrain.adbuddiz.sdk.AdBuddizActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent">
</activity>
</application>
<uses-feature android:glEsVersion="0x00020000" />
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" />
</manifest>