@@ -133,6 +133,8 @@ public override void Initialize(string appId)
133133 var unityPlayer = new AndroidJavaClass ( "com.unity3d.player.UnityPlayer" ) ;
134134 var activity = unityPlayer . GetStatic < AndroidJavaObject > ( "currentActivity" ) ;
135135
136+ _enableHardwareAcceleration ( activity ) ;
137+
136138 _sdkWrapperClass . CallStatic ( "setSdkType" , "unity" ) ;
137139 _sdkWrapperClass . CallStatic ( "setSdkVersion" , VersionHeader ) ;
138140
@@ -174,6 +176,24 @@ public override void Initialize(string appId)
174176 _completedInit ( appId ) ;
175177 }
176178
179+ /// <summary>
180+ /// Unity sets android:hardwareAccelerated="false" on its Activity which
181+ /// prevents WebView transparent backgrounds from rendering. The native SDK
182+ /// displays in-app messages via a PopupWindow whose window inherits this
183+ /// setting, causing the IAM to render with an opaque white background.
184+ /// Enabling the flag at the window level restores transparency without
185+ /// affecting Unity's own GL/Vulkan rendering surface.
186+ /// </summary>
187+ private static void _enableHardwareAcceleration ( AndroidJavaObject activity )
188+ {
189+ activity . Call ( "runOnUiThread" , new AndroidJavaRunnable ( ( ) =>
190+ {
191+ const int FLAG_HARDWARE_ACCELERATED = 0x01000000 ;
192+ using var window = activity . Call < AndroidJavaObject > ( "getWindow" ) ;
193+ window . Call ( "setFlags" , FLAG_HARDWARE_ACCELERATED , FLAG_HARDWARE_ACCELERATED ) ;
194+ } ) ) ;
195+ }
196+
177197 public override void Login ( string externalId , string jwtBearerToken = null )
178198 {
179199 _sdkClass . CallStatic ( "login" , externalId , jwtBearerToken ) ;
0 commit comments