Skip to content

Commit d7c5a20

Browse files
committed
fix: handle new and legacy input systems for windows webview
1 parent 8fc4980 commit d7c5a20

File tree

2 files changed

+126
-207
lines changed

2 files changed

+126
-207
lines changed

sample/Assets/Scenes/Passport/InitialisationWithUI.unity

Lines changed: 101 additions & 204 deletions
Original file line numberDiff line numberDiff line change
@@ -250,109 +250,6 @@ CanvasRenderer:
250250
m_PrefabAsset: {fileID: 0}
251251
m_GameObject: {fileID: 27701369}
252252
m_CullTransparentMesh: 1
253-
--- !u!1 &96180837
254-
GameObject:
255-
m_ObjectHideFlags: 0
256-
m_CorrespondingSourceObject: {fileID: 0}
257-
m_PrefabInstance: {fileID: 0}
258-
m_PrefabAsset: {fileID: 0}
259-
serializedVersion: 6
260-
m_Component:
261-
- component: {fileID: 96180841}
262-
- component: {fileID: 96180840}
263-
- component: {fileID: 96180839}
264-
- component: {fileID: 96180842}
265-
m_Layer: 5
266-
m_Name: RawImage
267-
m_TagString: Untagged
268-
m_Icon: {fileID: 0}
269-
m_NavMeshLayer: 0
270-
m_StaticEditorFlags: 0
271-
m_IsActive: 1
272-
--- !u!114 &96180839
273-
MonoBehaviour:
274-
m_ObjectHideFlags: 0
275-
m_CorrespondingSourceObject: {fileID: 0}
276-
m_PrefabInstance: {fileID: 0}
277-
m_PrefabAsset: {fileID: 0}
278-
m_GameObject: {fileID: 96180837}
279-
m_Enabled: 1
280-
m_EditorHideFlags: 0
281-
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
282-
m_Name:
283-
m_EditorClassIdentifier:
284-
m_Material: {fileID: 0}
285-
m_Color: {r: 1, g: 1, b: 1, a: 1}
286-
m_RaycastTarget: 1
287-
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
288-
m_Maskable: 1
289-
m_OnCullStateChanged:
290-
m_PersistentCalls:
291-
m_Calls: []
292-
m_Texture: {fileID: 0}
293-
m_UVRect:
294-
serializedVersion: 2
295-
x: 0
296-
y: 0
297-
width: 1
298-
height: 1
299-
--- !u!222 &96180840
300-
CanvasRenderer:
301-
m_ObjectHideFlags: 0
302-
m_CorrespondingSourceObject: {fileID: 0}
303-
m_PrefabInstance: {fileID: 0}
304-
m_PrefabAsset: {fileID: 0}
305-
m_GameObject: {fileID: 96180837}
306-
m_CullTransparentMesh: 1
307-
--- !u!224 &96180841
308-
RectTransform:
309-
m_ObjectHideFlags: 0
310-
m_CorrespondingSourceObject: {fileID: 0}
311-
m_PrefabInstance: {fileID: 0}
312-
m_PrefabAsset: {fileID: 0}
313-
m_GameObject: {fileID: 96180837}
314-
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
315-
m_LocalPosition: {x: 0, y: 0, z: 0}
316-
m_LocalScale: {x: 1.0392305, y: 1.0392305, z: 1.0392305}
317-
m_ConstrainProportionsScale: 0
318-
m_Children: []
319-
m_Father: {fileID: 447127388}
320-
m_RootOrder: 0
321-
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
322-
m_AnchorMin: {x: 0.5, y: 0.5}
323-
m_AnchorMax: {x: 0.5, y: 0.5}
324-
m_AnchoredPosition: {x: 0, y: 0}
325-
m_SizeDelta: {x: 0, y: 0}
326-
m_Pivot: {x: 0.5, y: 0.5}
327-
--- !u!114 &96180842
328-
MonoBehaviour:
329-
m_ObjectHideFlags: 0
330-
m_CorrespondingSourceObject: {fileID: 0}
331-
m_PrefabInstance: {fileID: 0}
332-
m_PrefabAsset: {fileID: 0}
333-
m_GameObject: {fileID: 96180837}
334-
m_Enabled: 1
335-
m_EditorHideFlags: 0
336-
m_Script: {fileID: 11500000, guid: 32208e882b664251bb0da03443581c5f, type: 3}
337-
m_Name:
338-
m_EditorClassIdentifier:
339-
loginButton: {fileID: 1274086209}
340-
OnLoginSuccess:
341-
m_PersistentCalls:
342-
m_Calls: []
343-
OnLoginFailure:
344-
m_PersistentCalls:
345-
m_Calls: []
346-
enableRemoteDebugging: 1
347-
remoteDebuggingPort: 9222
348-
clearCacheOnLogin: 1
349-
clientId: IllW5pJ54DShXtaSXzaAlghm40uQjptd
350-
environment: sandbox
351-
redirectUri: immutablerunner://callback
352-
logoutRedirectUri: immutablerunner://logout
353-
webViewBaseUrl: https://auth.immutable.com/im-embedded-login-prompt
354-
webViewWidth: 1920
355-
webViewHeight: 1080
356253
--- !u!1 &96192975
357254
GameObject:
358255
m_ObjectHideFlags: 0
@@ -732,107 +629,6 @@ CanvasRenderer:
732629
m_PrefabAsset: {fileID: 0}
733630
m_GameObject: {fileID: 416242723}
734631
m_CullTransparentMesh: 1
735-
--- !u!1 &447127384
736-
GameObject:
737-
m_ObjectHideFlags: 0
738-
m_CorrespondingSourceObject: {fileID: 0}
739-
m_PrefabInstance: {fileID: 0}
740-
m_PrefabAsset: {fileID: 0}
741-
serializedVersion: 6
742-
m_Component:
743-
- component: {fileID: 447127388}
744-
- component: {fileID: 447127387}
745-
- component: {fileID: 447127386}
746-
- component: {fileID: 447127385}
747-
m_Layer: 5
748-
m_Name: Canvas
749-
m_TagString: Untagged
750-
m_Icon: {fileID: 0}
751-
m_NavMeshLayer: 0
752-
m_StaticEditorFlags: 0
753-
m_IsActive: 1
754-
--- !u!114 &447127385
755-
MonoBehaviour:
756-
m_ObjectHideFlags: 0
757-
m_CorrespondingSourceObject: {fileID: 0}
758-
m_PrefabInstance: {fileID: 0}
759-
m_PrefabAsset: {fileID: 0}
760-
m_GameObject: {fileID: 447127384}
761-
m_Enabled: 1
762-
m_EditorHideFlags: 0
763-
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
764-
m_Name:
765-
m_EditorClassIdentifier:
766-
m_IgnoreReversedGraphics: 1
767-
m_BlockingObjects: 0
768-
m_BlockingMask:
769-
serializedVersion: 2
770-
m_Bits: 4294967295
771-
--- !u!114 &447127386
772-
MonoBehaviour:
773-
m_ObjectHideFlags: 0
774-
m_CorrespondingSourceObject: {fileID: 0}
775-
m_PrefabInstance: {fileID: 0}
776-
m_PrefabAsset: {fileID: 0}
777-
m_GameObject: {fileID: 447127384}
778-
m_Enabled: 1
779-
m_EditorHideFlags: 0
780-
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
781-
m_Name:
782-
m_EditorClassIdentifier:
783-
m_UiScaleMode: 0
784-
m_ReferencePixelsPerUnit: 100
785-
m_ScaleFactor: 1
786-
m_ReferenceResolution: {x: 800, y: 600}
787-
m_ScreenMatchMode: 0
788-
m_MatchWidthOrHeight: 0
789-
m_PhysicalUnit: 3
790-
m_FallbackScreenDPI: 96
791-
m_DefaultSpriteDPI: 96
792-
m_DynamicPixelsPerUnit: 1
793-
m_PresetInfoIsWorld: 0
794-
--- !u!223 &447127387
795-
Canvas:
796-
m_ObjectHideFlags: 0
797-
m_CorrespondingSourceObject: {fileID: 0}
798-
m_PrefabInstance: {fileID: 0}
799-
m_PrefabAsset: {fileID: 0}
800-
m_GameObject: {fileID: 447127384}
801-
m_Enabled: 1
802-
serializedVersion: 3
803-
m_RenderMode: 0
804-
m_Camera: {fileID: 0}
805-
m_PlaneDistance: 100
806-
m_PixelPerfect: 0
807-
m_ReceivesEvents: 1
808-
m_OverrideSorting: 0
809-
m_OverridePixelPerfect: 0
810-
m_SortingBucketNormalizedSize: 0
811-
m_AdditionalShaderChannelsFlag: 0
812-
m_SortingLayerID: 0
813-
m_SortingOrder: 1000
814-
m_TargetDisplay: 0
815-
--- !u!224 &447127388
816-
RectTransform:
817-
m_ObjectHideFlags: 0
818-
m_CorrespondingSourceObject: {fileID: 0}
819-
m_PrefabInstance: {fileID: 0}
820-
m_PrefabAsset: {fileID: 0}
821-
m_GameObject: {fileID: 447127384}
822-
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
823-
m_LocalPosition: {x: 0, y: 0, z: 0}
824-
m_LocalScale: {x: 0, y: 0, z: 0}
825-
m_ConstrainProportionsScale: 0
826-
m_Children:
827-
- {fileID: 96180841}
828-
m_Father: {fileID: 0}
829-
m_RootOrder: 4
830-
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
831-
m_AnchorMin: {x: 0, y: 0}
832-
m_AnchorMax: {x: 0, y: 0}
833-
m_AnchoredPosition: {x: 0, y: 0}
834-
m_SizeDelta: {x: 0, y: 0}
835-
m_Pivot: {x: 0, y: 0}
836632
--- !u!1 &519420028
837633
GameObject:
838634
m_ObjectHideFlags: 0
@@ -2141,3 +1937,104 @@ CanvasRenderer:
21411937
m_PrefabAsset: {fileID: 0}
21421938
m_GameObject: {fileID: 1850628783}
21431939
m_CullTransparentMesh: 1
1940+
--- !u!1001 &5904238482297122518
1941+
PrefabInstance:
1942+
m_ObjectHideFlags: 0
1943+
serializedVersion: 2
1944+
m_Modification:
1945+
m_TransformParent: {fileID: 0}
1946+
m_Modifications:
1947+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1948+
propertyPath: m_Pivot.x
1949+
value: 0
1950+
objectReference: {fileID: 0}
1951+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1952+
propertyPath: m_Pivot.y
1953+
value: 0
1954+
objectReference: {fileID: 0}
1955+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1956+
propertyPath: m_RootOrder
1957+
value: 4
1958+
objectReference: {fileID: 0}
1959+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1960+
propertyPath: m_AnchorMax.x
1961+
value: 0
1962+
objectReference: {fileID: 0}
1963+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1964+
propertyPath: m_AnchorMax.y
1965+
value: 0
1966+
objectReference: {fileID: 0}
1967+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1968+
propertyPath: m_AnchorMin.x
1969+
value: 0
1970+
objectReference: {fileID: 0}
1971+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1972+
propertyPath: m_AnchorMin.y
1973+
value: 0
1974+
objectReference: {fileID: 0}
1975+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1976+
propertyPath: m_SizeDelta.x
1977+
value: 0
1978+
objectReference: {fileID: 0}
1979+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1980+
propertyPath: m_SizeDelta.y
1981+
value: 0
1982+
objectReference: {fileID: 0}
1983+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1984+
propertyPath: m_LocalPosition.x
1985+
value: 0
1986+
objectReference: {fileID: 0}
1987+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1988+
propertyPath: m_LocalPosition.y
1989+
value: 0
1990+
objectReference: {fileID: 0}
1991+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1992+
propertyPath: m_LocalPosition.z
1993+
value: 0
1994+
objectReference: {fileID: 0}
1995+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
1996+
propertyPath: m_LocalRotation.w
1997+
value: 1
1998+
objectReference: {fileID: 0}
1999+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2000+
propertyPath: m_LocalRotation.x
2001+
value: 0
2002+
objectReference: {fileID: 0}
2003+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2004+
propertyPath: m_LocalRotation.y
2005+
value: 0
2006+
objectReference: {fileID: 0}
2007+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2008+
propertyPath: m_LocalRotation.z
2009+
value: 0
2010+
objectReference: {fileID: 0}
2011+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2012+
propertyPath: m_AnchoredPosition.x
2013+
value: 0
2014+
objectReference: {fileID: 0}
2015+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2016+
propertyPath: m_AnchoredPosition.y
2017+
value: 0
2018+
objectReference: {fileID: 0}
2019+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2020+
propertyPath: m_LocalEulerAnglesHint.x
2021+
value: 0
2022+
objectReference: {fileID: 0}
2023+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2024+
propertyPath: m_LocalEulerAnglesHint.y
2025+
value: 0
2026+
objectReference: {fileID: 0}
2027+
- target: {fileID: 5904238481854722442, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2028+
propertyPath: m_LocalEulerAnglesHint.z
2029+
value: 0
2030+
objectReference: {fileID: 0}
2031+
- target: {fileID: 5904238481854722446, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2032+
propertyPath: m_Name
2033+
value: Canvas
2034+
objectReference: {fileID: 0}
2035+
- target: {fileID: 5904238482241975484, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}
2036+
propertyPath: loginButton
2037+
value:
2038+
objectReference: {fileID: 1274086209}
2039+
m_RemovedComponents: []
2040+
m_SourcePrefab: {fileID: 100100000, guid: 318101a79a6d44d48a0863a613fa1909, type: 3}

src/Packages/Passport/Runtime/Scripts/Private/UI/WebViews/WindowsPassportWebView.cs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
using Immutable.Passport.Core.Logging;
1111
using Cysharp.Threading.Tasks;
1212

13+
#if ENABLE_INPUT_SYSTEM
14+
using UnityEngine.InputSystem;
15+
#endif
16+
1317
#if UNITY_EDITOR
1418
using UnityEditor;
1519
#endif
@@ -520,8 +524,25 @@ private void ConfigureInputHandler()
520524
{
521525
try
522526
{
523-
// Load the BrowserInput asset from SDK Resources
524-
var inputHandler = Resources.Load<WebBrowserOldInputHandler>("BrowserInput");
527+
#if ENABLE_INPUT_SYSTEM
528+
// Use UWB's built-in Input System handler
529+
PassportLogger.Info($"{TAG} Using UWB Input System handler");
530+
var inputSystemHandler = ScriptableObject.CreateInstance<VoltstroStudios.UnityWebBrowser.Input.WebBrowserInputSystemHandler>();
531+
532+
// Configure Input Actions for the handler
533+
// Set up scroll input action
534+
inputSystemHandler.scrollInput = new InputAction("Scroll", InputActionType.Value, "<Mouse>/scroll");
535+
inputSystemHandler.scrollInput.Enable();
536+
537+
// Set up pointer position input action
538+
inputSystemHandler.pointPosition = new InputAction("PointerPosition", InputActionType.Value, "<Mouse>/position");
539+
inputSystemHandler.pointPosition.Enable();
540+
541+
webBrowserUI.inputHandler = inputSystemHandler;
542+
PassportLogger.Info($"{TAG} Input System handler configured with mouse actions");
543+
#else
544+
// Load the BrowserInput asset from SDK Resources (legacy input)
545+
var inputHandler = Resources.Load<VoltstroStudios.UnityWebBrowser.Input.WebBrowserOldInputHandler>("BrowserInput");
525546
if (inputHandler != null)
526547
{
527548
webBrowserUI.inputHandler = inputHandler;
@@ -530,9 +551,10 @@ private void ConfigureInputHandler()
530551
else
531552
{
532553
PassportLogger.Warn($"{TAG} BrowserInput.asset not found in Resources, creating fallback");
533-
var fallbackHandler = ScriptableObject.CreateInstance<WebBrowserOldInputHandler>();
554+
var fallbackHandler = ScriptableObject.CreateInstance<VoltstroStudios.UnityWebBrowser.Input.WebBrowserOldInputHandler>();
534555
webBrowserUI.inputHandler = fallbackHandler;
535556
}
557+
#endif
536558
}
537559
catch (Exception ex)
538560
{

0 commit comments

Comments
 (0)