Reputation: 1
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