TaeHeum Park
TaeHeum Park

Reputation: 1

Why does the UnityPlayer become null when switching Activity in Android?

I initialized the UnityPlayer using a singleton pattern. However, when I switch activities, the UnityPlayer becomes null.

Here’s what I did:

Initialization in MainActivity:

UnityPlayerManager.initialize(getApplicationContext());

Switching to TrainingActivity:

Intent intent = new Intent(getApplicationContext(), TrainingActivity.class);
startActivity(intent);

Accessing UnityPlayer in TrainingActivity:

UnityPlayerManager.getUnityPlayer() The result is that UnityPlayerManager.getUnityPlayer() in TrainingActivity returns null.

How can I ensure that the UnityPlayer value is retained across activities?

UnityPlayerManager Singleton Here’s the implementation of my UnityPlayerManager:

object UnityPlayerManager {
    private var unityPlayer: UnityPlayerForActivityOrService? = null private
    var unityPlayerLayout: FrameLayout? = null

    @JvmStatic
    fun initialize(context: Context) {
        if (unityPlayer == null) {
            unityPlayer = UnityPlayerForActivityOrService(context)
            unityPlayerLayout = unityPlayer!!.frameLayout
        }
    }

    @JvmStatic
    fun getUnityPlayerFrameLayout(): FrameLayout? {
        return unityPlayerLayout
    }

    @JvmStatic
    fun getUnityPlayer(): UnityPlayerForActivityOrService? {
        return unityPlayer
    }

// Uncommented for debugging:
// fun destroyUnityPlayer() {
//     unityPlayer?.destroy()
//     unityPlayer = null
// }

}

Observations: The UnityPlayer is properly initialized and accessible in MainActivity. However, after navigating to TrainingActivity, the UnityPlayer becomes null.

Upvotes: 0

Views: 22

Answers (0)

Related Questions