diff --git a/Assets/Gothic-Core/Scripts/Domain/Vobs/VobInitializerDomain.cs b/Assets/Gothic-Core/Scripts/Domain/Vobs/VobInitializerDomain.cs
index 19cfd848f..b9c272e8a 100644
--- a/Assets/Gothic-Core/Scripts/Domain/Vobs/VobInitializerDomain.cs
+++ b/Assets/Gothic-Core/Scripts/Domain/Vobs/VobInitializerDomain.cs
@@ -802,7 +802,7 @@ private static void SnapDigSpotToLoader(GameObject go)
///
/// Child vobs are created inside their parent's GO without a VobLoader of their own. Their adapters
- /// (VRVobContainer, VRVobContainerPhysicsChest, door lock picking, VRFocus) call
+ /// (VRVobContainer, HvrPhysicsChest, door lock picking, VRFocus) call
/// GetComponentInParent<VobLoader>() and got the PARENT's vob (often an unnamed zCVob) -
/// InvalidCastExceptions, "No door or container found for ><", doors/chests that don't work (G2 Xardas' tower).
///
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/HVR - Player.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/HVR - Player.prefab
index bcc82c85f..860bf49bb 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/HVR - Player.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/HVR - Player.prefab
@@ -709,90 +709,6 @@ PrefabInstance:
propertyPath: RaycastLayermask.m_Bits
value: 9438272
objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 4104050421938227924}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 4104050421938227924}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 5592562468148006618}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Components.Player.VRPlayerWeaponInteraction, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Components.Player.VRPlayerWeaponInteraction, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRPlayerItemAdapter, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 2034389217661245426, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: m_LocalRotation.w
value: 0.5
@@ -825,10 +741,6 @@ PrefabInstance:
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 9da7c4efedc95434385f95fd36a71279, type: 2}
- - target: {fileID: 2573056120201010472, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: 'm_Materials.Array.data[1]'
- value:
- objectReference: {fileID: 2100000, guid: 9da7c4efedc95434385f95fd36a71279, type: 2}
- target: {fileID: 2623048716060499684, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
@@ -905,34 +817,6 @@ PrefabInstance:
propertyPath: SFXGrab
value:
objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 5592562468148006618}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRPlayerItemAdapter, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 2980805439611176150, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 3063419232759952031, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: Tags.Tags
value:
@@ -941,122 +825,6 @@ PrefabInstance:
propertyPath: Tags._data
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3760600358070659426}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 9202099228209387433}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 3760600358070659426}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 9202099228209387433}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 3367897735511474143, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 3367897735596539136, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: SocketContainer
value:
@@ -1093,34 +861,6 @@ PrefabInstance:
propertyPath: SFXGrab
value:
objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 5592562468148006618}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRPlayerItemAdapter, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3964033594404211023, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 4653310549361533989, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: m_IsActive
value: 0
@@ -1205,90 +945,6 @@ PrefabInstance:
propertyPath: RaycastLayermask.m_Bits
value: 5243968
objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 4104050421938227924}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 4104050421938227924}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 5592562468148006618}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Components.Player.VRPlayerWeaponInteraction, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Components.Player.VRPlayerWeaponInteraction, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRPlayerItemAdapter, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 7340868166416387179, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
propertyPath: m_LocalRotation.w
value: 0
@@ -1505,21 +1161,45 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 2923976313507361695, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: -1
addedObject: {fileID: 3789326534228044634}
+ - targetCorrespondingSourceObject: {fileID: 3367897735596539146, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 265470885364990989}
- targetCorrespondingSourceObject: {fileID: 3367897735511474145, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: 1
addedObject: {fileID: 6510255065976159289}
+ - targetCorrespondingSourceObject: {fileID: 3367897735511474145, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 6830298057528518834}
- targetCorrespondingSourceObject: {fileID: 703588620095445913, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: -1
addedObject: {fileID: 851891696609758034}
- targetCorrespondingSourceObject: {fileID: 2641012728304036569, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: 1
addedObject: {fileID: 1678881631422854599}
+ - targetCorrespondingSourceObject: {fileID: 2641012728304036569, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 8030036349999634828}
- targetCorrespondingSourceObject: {fileID: 887448239260712835, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: 1
addedObject: {fileID: 757337884793384726}
+ - targetCorrespondingSourceObject: {fileID: 887448239260712835, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 7010009710009411731}
+ - targetCorrespondingSourceObject: {fileID: 8237771281066642269, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 2406662486614375646}
+ - targetCorrespondingSourceObject: {fileID: 3327876949398026377, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 8462357697535986096}
- targetCorrespondingSourceObject: {fileID: 8886962481680141934, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: -1
addedObject: {fileID: 4516976911541839521}
+ - targetCorrespondingSourceObject: {fileID: 8653842037556556660, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1976198550646775587}
+ - targetCorrespondingSourceObject: {fileID: 3309422083963978583, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 9213565482220769279}
- targetCorrespondingSourceObject: {fileID: 6718914276336705915, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
insertIndex: -1
addedObject: {fileID: 3489498994974388381}
@@ -1540,7 +1220,7 @@ MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1685099869530008038, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
+ m_GameObject: {fileID: 6965913448549182659}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ce026d01d1f538044a048be125f5a85e, type: 3}
@@ -1629,63 +1309,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutIntoHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutOutOfHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -1729,6 +1359,18 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
DebugScale: 0
+--- !u!114 &7010009710009411731
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1505226319018549300}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!4 &1672321467721471303 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1118649348335930096, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
@@ -2206,6 +1848,23 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6bccf1e5bfe81ea449669046dd363b91, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &3845537509841100000 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 3309422083963978583, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ m_PrefabInstance: {fileID: 1779900574691844023}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &9213565482220769279
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3845537509841100000}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4fc5f324acfcbc3428010a9db3c9422e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrGrabberBridge
--- !u!1 &3895146393672982614 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3367897735511474145, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
@@ -2225,63 +1884,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutIntoHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutOutOfHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -2324,17 +1933,63 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
DebugScale: 0
+--- !u!114 &6830298057528518834
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3895146393672982614}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!114 &3895146393690940081 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 3367897735596539142, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
+ m_GameObject: {fileID: 3895146393690940093}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6953a3149e8e4d1468962577608f0002, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &3895146393690940093 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 3367897735596539146, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ m_PrefabInstance: {fileID: 1779900574691844023}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &265470885364990989
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3895146393690940093}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
+--- !u!1 &3935447129917564734 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 3327876949398026377, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ m_PrefabInstance: {fileID: 1779900574691844023}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &8462357697535986096
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3935447129917564734}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4fc5f324acfcbc3428010a9db3c9422e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrGrabberBridge
--- !u!137 &4253138355794772639 stripped
SkinnedMeshRenderer:
m_CorrespondingSourceObject: {fileID: 2573056120201010472, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
@@ -2359,63 +2014,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutIntoHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 9202099228209387433}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 3760600358070659426}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutOutOfHolster
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -2459,6 +2064,18 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
DebugScale: 0
+--- !u!114 &8030036349999634828
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4329570237425759598}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!137 &4383562423631724883 stripped
SkinnedMeshRenderer:
m_CorrespondingSourceObject: {fileID: 2623048716060499684, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
@@ -2538,12 +2155,29 @@ Rigidbody:
m_CorrespondingSourceObject: {fileID: 8653842037556556662, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &6965913448549182659 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 8653842037556556660, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ m_PrefabInstance: {fileID: 1779900574691844023}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1976198550646775587
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6965913448549182659}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4fc5f324acfcbc3428010a9db3c9422e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrGrabberBridge
--- !u!114 &6965913448549182662 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8653842037556556657, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
+ m_GameObject: {fileID: 6965913448549182659}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: de1e5b754bd6d9241a88e889575193b2, type: 3}
@@ -2623,12 +2257,29 @@ Rigidbody:
m_CorrespondingSourceObject: {fileID: 8237771281066642271, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &7701449421344543978 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 8237771281066642269, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
+ m_PrefabInstance: {fileID: 1779900574691844023}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &2406662486614375646
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7701449421344543978}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4fc5f324acfcbc3428010a9db3c9422e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrGrabberBridge
--- !u!114 &7701449421344543983 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8237771281066642264, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
+ m_GameObject: {fileID: 7701449421344543978}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: de1e5b754bd6d9241a88e889575193b2, type: 3}
@@ -2680,7 +2331,7 @@ MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7204430235297583144, guid: c43ac1b5fbd2fc24ea40fb28bae6be3e, type: 3}
m_PrefabInstance: {fileID: 1779900574691844023}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
+ m_GameObject: {fileID: 7701449421344543978}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ce026d01d1f538044a048be125f5a85e, type: 3}
@@ -3450,6 +3101,22 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 3389792897302281518, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: _additionalSockets.Array.size
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 3389792897302281518, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_additionalSockets.Array.data[0]'
+ value:
+ objectReference: {fileID: 1505226319018549300}
+ - target: {fileID: 3389792897302281518, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_additionalSockets.Array.data[1]'
+ value:
+ objectReference: {fileID: 4329570237425759598}
+ - target: {fileID: 3389792897302281518, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_additionalSockets.Array.data[2]'
+ value:
+ objectReference: {fileID: 3895146393672982614}
- target: {fileID: 6429825415842413170, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
propertyPath: m_Name
value: BackPack
@@ -3458,62 +3125,22 @@ PrefabInstance:
propertyPath: Socket
value:
objectReference: {fileID: 3895146393690940081}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 0
+ - target: {fileID: 7245954016319570917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: _holsterSockets.Array.size
+ value: 3
objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+ - target: {fileID: 7245954016319570917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_holsterSockets.Array.data[0]'
value:
- objectReference: {fileID: 3760600358070659426}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+ objectReference: {fileID: 1505226319018549300}
+ - target: {fileID: 7245954016319570917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_holsterSockets.Array.data[1]'
value:
- objectReference: {fileID: 3760600358070659426}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBackpackGrabbedToShoulder
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBackpackReleasedFromShoulder
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 6847336371662012770, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
+ objectReference: {fileID: 4329570237425759598}
+ - target: {fileID: 7245954016319570917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
+ propertyPath: '_holsterSockets.Array.data[2]'
+ value:
+ objectReference: {fileID: 3895146393672982614}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -3530,17 +3157,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6ebc937e678155e4d86feeb9248cca97, type: 3}
m_Name:
m_EditorClassIdentifier:
---- !u!114 &3760600358070659426 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 7245954016319570917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- m_PrefabInstance: {fileID: 5818257988439845511}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 0e87e25baf014b28a5aaa89ab1e7c31f, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!114 &4505433718888639186 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7942131790731640917, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
@@ -3573,17 +3189,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 3447029125977450136, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
m_PrefabInstance: {fileID: 5818257988439845511}
m_PrefabAsset: {fileID: 0}
---- !u!114 &9202099228209387433 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 3389792897302281518, guid: 9887ca19e46b4d547b2ad40c47c756b9, type: 3}
- m_PrefabInstance: {fileID: 5818257988439845511}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d33b9b45f9124f6b8afdb52a10613db0, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!1001 &6171425951156898325
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack.prefab
index 07854330c..3c8964429 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack.prefab
@@ -1244,6 +1244,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d33b9b45f9124f6b8afdb52a10613db0, type: 3}
m_Name:
m_EditorClassIdentifier:
+ _additionalSockets: []
--- !u!1 &8611331733936325895
GameObject:
m_ObjectHideFlags: 0
@@ -1293,15 +1294,15 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_text
- value: ''
+ value:
objectReference: {fileID: 0}
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_fontAsset
- value:
+ value:
objectReference: {fileID: 11400000, guid: ed34b05229166f3469c21b7208879736, type: 2}
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_sharedMaterial
- value:
+ value:
objectReference: {fileID: 5152873236376385906, guid: ed34b05229166f3469c21b7208879736, type: 2}
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_VerticalAlignment
@@ -1476,54 +1477,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: -8.42
objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory, Assembly-CSharp
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory, Assembly-CSharp
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
propertyPath: m_Name
value: LargeInventorySlot (1)
@@ -1535,13 +1488,33 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
- m_AddedComponents: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 2684062889524706141}
m_SourcePrefab: {fileID: 100100000, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
--- !u!4 &1092358407863461626 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 279963425429311615, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
m_PrefabInstance: {fileID: 921680395576817285}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &4861590189747613604 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
+ m_PrefabInstance: {fileID: 921680395576817285}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &2684062889524706141
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4861590189747613604}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1001 &1005704614264749958
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1594,30 +1567,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (5)
@@ -1632,6 +1581,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 1005704614264749958}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &6675445855591365778 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 1005704614264749958}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &1389077964738786662
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1684,30 +1638,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (9)
@@ -1722,6 +1652,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 1389077964738786662}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &4760857495613421170 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 1389077964738786662}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &1530620310586974029
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1944,30 +1879,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (1)
@@ -1982,6 +1893,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 1687738458635627183}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &5060643589338769851 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 1687738458635627183}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &2058406356030869475
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2034,30 +1950,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (7)
@@ -2072,6 +1964,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 2058406356030869475}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &5604698998649162999 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 2058406356030869475}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &2426361580239670146
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2298,30 +2195,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (4)
@@ -2336,6 +2209,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 2803095436446461417}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &8624835105962077949 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 2803095436446461417}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &3540224607268887998
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2392,54 +2270,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: -8.42
objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory, Assembly-CSharp
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory, Assembly-CSharp
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 4130146776124590184, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- target: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
propertyPath: m_Name
value: LargeInventorySlot
@@ -2451,13 +2281,33 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
- m_AddedComponents: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 2341765446252910576}
m_SourcePrefab: {fileID: 100100000, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
--- !u!4 &3657985873771433409 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 279963425429311615, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
m_PrefabInstance: {fileID: 3540224607268887998}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &9123385126480888991 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5745926728969230625, guid: 9c8562e025362a940aa6d5640a2299a3, type: 3}
+ m_PrefabInstance: {fileID: 3540224607268887998}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &2341765446252910576
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9123385126480888991}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1001 &3809279864917086369
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2510,30 +2360,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (2)
@@ -2548,6 +2374,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
m_PrefabInstance: {fileID: 3809279864917086369}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &7316746845000471477 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 3809279864917086369}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &5194386894083015225
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2600,30 +2431,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (3)
@@ -2633,6 +2440,11 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+--- !u!1 &1819774192277225773 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 5194386894083015225}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &6343286390695634847 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
@@ -2732,6 +2544,15 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: -2445633797789926738, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
insertIndex: -1
addedObject: {fileID: 7245954016319570917}
+ - targetCorrespondingSourceObject: {fileID: -2445633797789926738, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 9172675630291073396}
+ - targetCorrespondingSourceObject: {fileID: -2445633797789926738, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 6751980293987059883}
+ - targetCorrespondingSourceObject: {fileID: -2445633797789926738, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 7637540381203976400}
m_SourcePrefab: {fileID: 100100000, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
--- !u!1 &510075797823002552 stripped
GameObject:
@@ -2745,10 +2566,10 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 510075797823002552}
- serializedVersion: 4
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
@@ -2984,7 +2805,54 @@ MonoBehaviour:
m_EditorClassIdentifier:
_categoryText: {fileID: 2564309041635058493}
_pagerText: {fileID: 5783876815826470689}
- _socketContainer: {fileID: 7942131790731640917}
+ _holsterSockets: []
+ _inventorySockets:
+ - {fileID: 5060643589338769851}
+ - {fileID: 7316746845000471477}
+ - {fileID: 1819774192277225773}
+ - {fileID: 8624835105962077949}
+ - {fileID: 6675445855591365778}
+ - {fileID: 1134907965030801990}
+ - {fileID: 5604698998649162999}
+ - {fileID: 922373524700368431}
+ - {fileID: 4760857495613421170}
+ - {fileID: 3572143840313904494}
+--- !u!114 &9172675630291073396
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510075797823002552}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &6751980293987059883
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510075797823002552}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
+--- !u!114 &7637540381203976400
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510075797823002552}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3698197d5ce58d542a61ce69122e3160, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketContainerBridge
--- !u!4 &3447029125977450136 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8560556203703700366, guid: 6cb8512e2712dc24ab93173e96e1a2bf, type: 3}
@@ -3047,30 +2915,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (8)
@@ -3080,6 +2924,11 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+--- !u!1 &922373524700368431 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 6745236048955395387}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &5587329364365519005 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
@@ -3137,30 +2986,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- target: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
propertyPath: m_Name
value: BackpackInventorySlot (6)
@@ -3170,6 +2995,11 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+--- !u!1 &1134907965030801990 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
+ m_PrefabInstance: {fileID: 6815926870810616146}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &5658424827838203124 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 2dd29fe4a7e819740af535267b7cc113, type: 3}
@@ -3243,46 +3073,6 @@ PrefabInstance:
propertyPath: Size
value: 0.3
objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 7245954016319570917}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnItemPutIntoBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnReleased
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: OnItemPutOutOfBackpack
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 3389792897302281518}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnBeforeGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: Released.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory, Gothic.VR
- objectReference: {fileID: 0}
- - target: {fileID: 3711332657821201227, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
- propertyPath: BeforeGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Vob.Container.VRVobContainerSocketInventory, Gothic.VR
- objectReference: {fileID: 0}
- target: {fileID: 4434190707277561806, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
propertyPath: Target
value:
@@ -3333,6 +3123,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 5274205726842812995, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
m_PrefabInstance: {fileID: 6973195385822662266}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &3572143840313904494 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 5861164055357080340, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
+ m_PrefabInstance: {fileID: 6973195385822662266}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &8130138916144720860 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1157928709923595686, guid: 8301813fbd70d3b47b2ab9ec26c3615e, type: 3}
@@ -3692,7 +3487,7 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_text
- value: ''
+ value:
objectReference: {fileID: 0}
- target: {fileID: 6401121504383089494, guid: 4293d805a850fb84885c55f47b7299bd, type: 3}
propertyPath: m_fontSize
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackInventorySlot.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackInventorySlot.prefab
index 566d7b1bf..6b4fee0f5 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackInventorySlot.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackInventorySlot.prefab
@@ -14,6 +14,7 @@ GameObject:
- component: {fileID: 4434190707277561806}
- component: {fileID: 7810595717036477131}
- component: {fileID: 8782956222347397959}
+ - component: {fileID: 1881403388789157283}
m_Layer: 0
m_Name: VRBackpackInventorySlot
m_TagString: Untagged
@@ -51,63 +52,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory,
- Assembly-CSharp
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutOutOfBackpack
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory,
- Assembly-CSharp
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutIntoBackpack
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -219,6 +170,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &1881403388789157283
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5861164055357080340}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &7098095399602562181
GameObject:
m_ObjectHideFlags: 0
@@ -280,6 +243,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -301,7 +266,9 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackLargeInventorySlot.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackLargeInventorySlot.prefab
index e1815ce5c..24dd48465 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackLargeInventorySlot.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Player-Elements/BackPack/VRBackpackLargeInventorySlot.prefab
@@ -14,6 +14,7 @@ GameObject:
- component: {fileID: 1109714354293663205}
- component: {fileID: 4434190707277561806}
- component: {fileID: 8782956222347397959}
+ - component: {fileID: 3068390016136051502}
m_Layer: 0
m_Name: VRBackpackLargeInventorySlot
m_TagString: Untagged
@@ -51,63 +52,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory,
- Assembly-CSharp
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutOutOfBackpack
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.VobContainer.HVRVobContainerSocketInventory,
- Assembly-CSharp
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 0}
- m_TargetAssemblyTypeName: Gothic.VR.Adapters.Player.VRBackpack, Gothic.VR
- m_MethodName: OnItemPutIntoBackpack
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -119,7 +70,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -220,6 +170,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &3068390016136051502
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5861164055357080340}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1001 &3062234451954866645
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem.prefab
index b701fdb9e..ccbf13ffa 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem.prefab
@@ -16,6 +16,8 @@ GameObject:
- component: {fileID: 8543334853728962911}
- component: {fileID: 8461469363836242350}
- component: {fileID: 2018021949967966991}
+ - component: {fileID: 5746501746354695612}
+ - component: {fileID: 6145980801324581266}
m_Layer: 6
m_Name: oCItem
m_TagString: GothicVob
@@ -46,10 +48,10 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6503575194566409312}
- serializedVersion: 4
+ serializedVersion: 5
m_Mass: 2.5
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
@@ -166,64 +168,16 @@ MonoBehaviour:
m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 8543334853728962911}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.HVROCItem, Assembly-CSharp
- m_MethodName: OnGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 8543334853728962911}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.HVRoCItem, Assembly-CSharp
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 6759220176799969513}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 6759220176799969513}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -309,6 +263,30 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
_injectionStrategy: 2
+--- !u!114 &5746501746354695612
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6503575194566409312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &6145980801324581266
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6503575194566409312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1001 &2283517946604736509
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem/LockPick.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem/LockPick.prefab
index 8b50348a1..321b61843 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem/LockPick.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCItem/LockPick.prefab
@@ -161,9 +161,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5b286a6d3f574029ae48428e93591d28, type: 3}
m_Name:
m_EditorClassIdentifier:
- IsSocketed: 0
IsInsideLock: 0
- ActiveDoorLock: {fileID: 0}
+ ActiveContainerDoorPicking: {fileID: 0}
HoldingHand: {fileID: 0}
--- !u!4 &6888142504213485964 stripped
Transform:
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobBed.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobBed.prefab
index e05e3d41e..26c42099d 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobBed.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobBed.prefab
@@ -13,6 +13,8 @@ GameObject:
- component: {fileID: 2854363553026066547}
- component: {fileID: 6907302684280751333}
- component: {fileID: 2225125317086924068}
+ - component: {fileID: 6622844009418538601}
+ - component: {fileID: 2985694541242234038}
m_Layer: 6
m_Name: BIP01.*|ZM.*
m_TagString: Untagged
@@ -152,34 +154,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -224,6 +202,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dc7b9870e5ee6804aa346c39e83f17c7, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Vob.VRMobInteraction
+--- !u!114 &6622844009418538601
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &2985694541242234038
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &6503575194566409312
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobContainer.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobContainer.prefab
index d27fbccbc..2592d8fd0 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobContainer.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobContainer.prefab
@@ -14,6 +14,7 @@ GameObject:
- component: {fileID: 3492144785080063237}
- component: {fileID: 7889487273161906977}
- component: {fileID: 7785860572896069705}
+ - component: {fileID: 1468309271852763067}
m_Layer: 0
m_Name: ItemSocket (1)
m_TagString: Untagged
@@ -51,39 +52,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -95,7 +70,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -195,6 +169,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &1468309271852763067
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251161015644863541}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &1058267453060700974
GameObject:
m_ObjectHideFlags: 0
@@ -209,6 +195,7 @@ GameObject:
- component: {fileID: 6214475728348187998}
- component: {fileID: 8532409929422760468}
- component: {fileID: 7916747858208428323}
+ - component: {fileID: 521888360392017761}
m_Layer: 0
m_Name: ItemSocket (11)
m_TagString: Untagged
@@ -246,39 +233,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -290,7 +251,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -390,6 +350,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &521888360392017761
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058267453060700974}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &1378983584142208125
GameObject:
m_ObjectHideFlags: 0
@@ -404,6 +376,7 @@ GameObject:
- component: {fileID: 1875918564020284620}
- component: {fileID: 9153324367550496876}
- component: {fileID: 5755579173600781048}
+ - component: {fileID: 8487832477624126045}
m_Layer: 0
m_Name: ItemSocket (5)
m_TagString: Untagged
@@ -441,39 +414,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -485,7 +432,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -585,6 +531,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &8487832477624126045
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1378983584142208125}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &1404770959867932707
GameObject:
m_ObjectHideFlags: 0
@@ -646,6 +604,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -667,9 +627,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &2214792497711643535
GameObject:
@@ -732,6 +694,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -753,9 +717,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &2987689210569271698
GameObject:
@@ -837,7 +803,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
_rootGO: {fileID: 6503575194566409312}
_audioSource: {fileID: 1934416043258242669}
- _hvrPhysicsDoor: {fileID: 6797639264981372780}
--- !u!135 &1304255910539477860
SphereCollider:
m_ObjectHideFlags: 0
@@ -870,6 +835,7 @@ GameObject:
- component: {fileID: 7540743326042314200}
- component: {fileID: 923689649037191229}
- component: {fileID: 2596048974797699402}
+ - component: {fileID: 4022459671801958678}
m_Layer: 0
m_Name: Inventory
m_TagString: Untagged
@@ -943,6 +909,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d33b9b45f9124f6b8afdb52a10613db0, type: 3}
m_Name:
m_EditorClassIdentifier:
+ _additionalSockets: []
+--- !u!114 &4022459671801958678
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3405583761693813258}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3698197d5ce58d542a61ce69122e3160, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketContainerBridge
--- !u!1 &3425223447465731592
GameObject:
m_ObjectHideFlags: 0
@@ -1004,6 +983,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1025,9 +1006,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &3676950170103165385
GameObject:
@@ -1043,6 +1026,7 @@ GameObject:
- component: {fileID: 6457455381913810790}
- component: {fileID: 4667297139685793446}
- component: {fileID: 1904934727426696998}
+ - component: {fileID: 4386314002942822306}
m_Layer: 0
m_Name: ItemSocket (4)
m_TagString: Untagged
@@ -1080,39 +1064,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -1124,7 +1082,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -1224,6 +1181,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &4386314002942822306
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3676950170103165385}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &3808700244132799788
GameObject:
m_ObjectHideFlags: 0
@@ -1238,6 +1207,7 @@ GameObject:
- component: {fileID: 2559447240399077539}
- component: {fileID: 2099805584684839997}
- component: {fileID: 5825525148917267618}
+ - component: {fileID: 5243031492779952397}
m_Layer: 0
m_Name: ItemSocket (10)
m_TagString: Untagged
@@ -1275,39 +1245,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -1319,7 +1263,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -1419,6 +1362,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &5243031492779952397
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3808700244132799788}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &3951947908768828885
GameObject:
m_ObjectHideFlags: 0
@@ -1480,6 +1435,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1501,9 +1458,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &4098042481361422127
GameObject:
@@ -1566,6 +1525,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1587,9 +1548,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &4112695746748433750
GameObject:
@@ -1652,6 +1615,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1673,9 +1638,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &4312441289917667731
GameObject:
@@ -1820,6 +1787,7 @@ GameObject:
- component: {fileID: 5785087856397484637}
- component: {fileID: 2720868678405414166}
- component: {fileID: 2783188317653191907}
+ - component: {fileID: 4313482169820223075}
m_Layer: 0
m_Name: ItemSocket (6)
m_TagString: Untagged
@@ -1857,39 +1825,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -1901,7 +1843,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -2001,6 +1942,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &4313482169820223075
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4544068122292998800}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &5161994242912671296
GameObject:
m_ObjectHideFlags: 0
@@ -2062,6 +2015,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2083,9 +2038,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &5871940868660505720
GameObject:
@@ -2148,6 +2105,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2169,9 +2128,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &5980433150175133251
GameObject:
@@ -2188,6 +2149,9 @@ GameObject:
- component: {fileID: 7136319683539270999}
- component: {fileID: 6573836035492029965}
- component: {fileID: 6797639264981372780}
+ - component: {fileID: 172510743831141755}
+ - component: {fileID: 8269181727875358990}
+ - component: {fileID: 1469359342129423611}
m_Layer: 11
m_Name: BIP01 CHEST_.*_1
m_TagString: Untagged
@@ -2218,10 +2182,10 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5980433150175133251}
- serializedVersion: 4
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
@@ -2354,34 +2318,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 5337214664733562970}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 5337214664733562970}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -2491,6 +2431,42 @@ MonoBehaviour:
_rootGo: {fileID: 6503575194566409312}
_socketContainer: {fileID: 923689649037191229}
_collectorCollider: {fileID: 9145350332021062103}
+--- !u!114 &172510743831141755
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5980433150175133251}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &8269181727875358990
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5980433150175133251}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
+--- !u!114 &1469359342129423611
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5980433150175133251}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9fca5660b7d87044b9f6309422813386, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrHingeBridge
--- !u!1 &6389233531767616918
GameObject:
m_ObjectHideFlags: 0
@@ -2552,6 +2528,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2573,9 +2551,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &6503575194566409312
GameObject:
@@ -2699,6 +2679,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2720,9 +2702,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &6719234714038604469
GameObject:
@@ -2738,6 +2722,7 @@ GameObject:
- component: {fileID: 158729719686616005}
- component: {fileID: 7916741380795831998}
- component: {fileID: 5298672618290999715}
+ - component: {fileID: 7297648640871248928}
m_Layer: 0
m_Name: ItemSocket (0)
m_TagString: Untagged
@@ -2775,39 +2760,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -2819,7 +2778,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -2919,6 +2877,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &7297648640871248928
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6719234714038604469}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &6822371266024915418
GameObject:
m_ObjectHideFlags: 0
@@ -2933,6 +2903,7 @@ GameObject:
- component: {fileID: 4704764476294233102}
- component: {fileID: 598568339332800422}
- component: {fileID: 2564368200858102714}
+ - component: {fileID: 6827862672640001227}
m_Layer: 0
m_Name: ItemSocket (7)
m_TagString: Untagged
@@ -2970,39 +2941,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -3014,7 +2959,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -3114,6 +3058,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &6827862672640001227
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6822371266024915418}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &6842481923038689323
GameObject:
m_ObjectHideFlags: 0
@@ -3175,6 +3131,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -3196,9 +3154,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &7330976607743722592
GameObject:
@@ -3214,6 +3174,7 @@ GameObject:
- component: {fileID: 5927022531090099218}
- component: {fileID: 1469796680986704926}
- component: {fileID: 2037134406786832725}
+ - component: {fileID: 491441172845085459}
m_Layer: 0
m_Name: ItemSocket (8)
m_TagString: Untagged
@@ -3251,39 +3212,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -3295,7 +3230,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -3395,6 +3329,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &491441172845085459
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7330976607743722592}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &8017589019207168410
GameObject:
m_ObjectHideFlags: 0
@@ -3409,6 +3355,7 @@ GameObject:
- component: {fileID: 372745028345143667}
- component: {fileID: 2809123207245500460}
- component: {fileID: 1543325685525774575}
+ - component: {fileID: 6878980199702300609}
m_Layer: 0
m_Name: ItemSocket (3)
m_TagString: Untagged
@@ -3446,39 +3393,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -3490,7 +3411,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -3590,6 +3510,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &6878980199702300609
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8017589019207168410}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &8321360292962761766
GameObject:
m_ObjectHideFlags: 0
@@ -3604,6 +3536,7 @@ GameObject:
- component: {fileID: 3576335141605442734}
- component: {fileID: 1273249311594439381}
- component: {fileID: 8938383412123691392}
+ - component: {fileID: 4791134024498380442}
m_Layer: 0
m_Name: ItemSocket (9)
m_TagString: Untagged
@@ -3641,39 +3574,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -3685,7 +3592,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -3785,6 +3691,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &4791134024498380442
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8321360292962761766}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &8517697476932975960
GameObject:
m_ObjectHideFlags: 0
@@ -3851,7 +3769,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 3118550354282009099}
GrabBags: []
- _allowGrabbing: 0
SocketContainer: {fileID: 923689649037191229}
GrabbleMustBeHeld: 0
--- !u!114 &3118550354282009099
@@ -3914,6 +3831,7 @@ GameObject:
- component: {fileID: 7577847198649703145}
- component: {fileID: 3895740475241616462}
- component: {fileID: 9057796826089372788}
+ - component: {fileID: 1082262625873351403}
m_Layer: 0
m_Name: ItemSocket (2)
m_TagString: Untagged
@@ -3951,39 +3869,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
BeforeGrabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnBeforeGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Grabbed:
m_PersistentCalls:
m_Calls: []
Released:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2596048974797699402}
- m_TargetAssemblyTypeName: Gothic.VR.Components.VobContainer.VRVobContainerSocketInventory,
- Gothic.VR
- m_MethodName: OnReleased
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
BeforeHoverEnter:
m_PersistentCalls:
m_Calls: []
@@ -3995,7 +3887,6 @@ MonoBehaviour:
m_Calls: []
_grabBag: {fileID: 0}
GrabBags: []
- _allowGrabbing: 0
GrabControl: 0
GrabDetectionType: 1
CheckHandOverlap: 0
@@ -4095,6 +3986,18 @@ MonoBehaviour:
Tags: {fileID: 11400000, guid: 836908d62a0d2e8489d7e21e7f774964, type: 2}
_data: 3
Any: 1
+--- !u!114 &1082262625873351403
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8739208446635805306}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 50fce3b6fdf41d541a8cb5f194cfd30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrSocketBridge
--- !u!1 &8984571792552414776
GameObject:
m_ObjectHideFlags: 0
@@ -4156,6 +4059,8 @@ MeshRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4177,9 +4082,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1001 &6500207459066028785
PrefabInstance:
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobDoor.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobDoor.prefab
index 538cbe85e..8d82277d7 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobDoor.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobDoor.prefab
@@ -15,6 +15,9 @@ GameObject:
- component: {fileID: 258546060515477993}
- component: {fileID: 6106660089090848833}
- component: {fileID: 2964456439257095392}
+ - component: {fileID: 1447025355381534221}
+ - component: {fileID: 7842253579892008169}
+ - component: {fileID: 87455771706928418}
m_Layer: 6
m_Name: BIP01 DOORANGLE
m_TagString: Untagged
@@ -45,10 +48,10 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 980716176992391296}
- serializedVersion: 4
+ serializedVersion: 5
m_Mass: 10
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
@@ -181,34 +184,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2934795001242935560}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2934795001242935560}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -315,6 +294,42 @@ MonoBehaviour:
PreviousClosed: 0
VerboseLogging: 0
Locked: 0
+--- !u!114 &1447025355381534221
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 980716176992391296}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &7842253579892008169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 980716176992391296}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
+--- !u!114 &87455771706928418
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 980716176992391296}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9fca5660b7d87044b9f6309422813386, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrHingeBridge
--- !u!1 &1222579370199367537
GameObject:
m_ObjectHideFlags: 0
@@ -523,7 +538,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
_rootGO: {fileID: 6503575194566409312}
_audioSource: {fileID: 4670513280573296585}
- _hvrPhysicsDoor: {fileID: 2964456439257095392}
--- !u!135 &827370569709809547
SphereCollider:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobFire.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobFire.prefab
index 792acacd9..4d5cc6937 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobFire.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobFire.prefab
@@ -13,6 +13,8 @@ GameObject:
- component: {fileID: 2854363553026066547}
- component: {fileID: 6907302684280751333}
- component: {fileID: 2520659641626351288}
+ - component: {fileID: 7062935307805374239}
+ - component: {fileID: 8587772998141430396}
m_Layer: 6
m_Name: ZM_.*LIGHTER
m_TagString: Untagged
@@ -152,34 +154,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -224,6 +202,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dc7b9870e5ee6804aa346c39e83f17c7, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Vob.VRMobInteraction
+--- !u!114 &7062935307805374239
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &8587772998141430396
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &6503575194566409312
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter.prefab
index f899e974e..1cf05cd15 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter.prefab
@@ -13,6 +13,8 @@ GameObject:
- component: {fileID: 2854363553026066547}
- component: {fileID: 6907302684280751333}
- component: {fileID: 3676752456108531535}
+ - component: {fileID: 3911890553226910476}
+ - component: {fileID: 3096177028477653256}
m_Layer: 6
m_Name: BIP01.*|ZM.*
m_TagString: Untagged
@@ -152,34 +154,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -224,6 +202,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dc7b9870e5ee6804aa346c39e83f17c7, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Vob.VRMobInteraction
+--- !u!114 &3911890553226910476
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &3096177028477653256
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &6503575194566409312
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter/Seat.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter/Seat.prefab
index aab913851..cde097fbe 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter/Seat.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobInter/Seat.prefab
@@ -56,26 +56,6 @@ PrefabInstance:
propertyPath: Rigidbody
value:
objectReference: {fileID: 492138702362873769}
- - target: {fileID: 6907302684280751333, guid: 6cbff20e63c6e794fa758a47d703f2df, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.size
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6907302684280751333, guid: 6cbff20e63c6e794fa758a47d703f2df, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target
- value:
- objectReference: {fileID: 1502701034376819458}
- - target: {fileID: 6907302684280751333, guid: 6cbff20e63c6e794fa758a47d703f2df, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 6907302684280751333, guid: 6cbff20e63c6e794fa758a47d703f2df, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: OnGrabbed
- objectReference: {fileID: 0}
- - target: {fileID: 6907302684280751333, guid: 6cbff20e63c6e794fa758a47d703f2df, type: 3}
- propertyPath: Grabbed.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: Gothic.VR.Adapters.Player.VRSeat, Gothic.VR
- objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -136,5 +116,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 89204bc4f3825b04bbeaa10da0266f6e, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Player.VRSeat
- _canvasFade: {fileID: 0}
_fadeSpeed: 6
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobLadder.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobLadder.prefab
index ef90fe157..68afdcac8 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobLadder.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobLadder.prefab
@@ -12,6 +12,8 @@ GameObject:
- component: {fileID: 2279246351159797278}
- component: {fileID: 229708145539930019}
- component: {fileID: 2893514479669655516}
+ - component: {fileID: 5158607502795523759}
+ - component: {fileID: 1622434811052915792}
m_Layer: 0
m_Name: BIP01 LADDER
m_TagString: Untagged
@@ -150,34 +152,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 252428407596682482}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 252428407596682482}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -210,6 +188,30 @@ MonoBehaviour:
HandGrabbers: []
Stabbers: []
Stabbable: {fileID: 0}
+--- !u!114 &5158607502795523759
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3766033816963121094}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &1622434811052915792
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3766033816963121094}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &6503575194566409312
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobSwitch.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobSwitch.prefab
index 7cfcd2362..970b6a006 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobSwitch.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobSwitch.prefab
@@ -91,6 +91,8 @@ GameObject:
- component: {fileID: 6429894365401520520}
- component: {fileID: 2478502802283214804}
- component: {fileID: 6762376611792587169}
+ - component: {fileID: 5867362459497893582}
+ - component: {fileID: 7548610693852835858}
m_Layer: 6
m_Name: BIP01.*
m_TagString: Untagged
@@ -230,34 +232,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 6429894365401520520}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 6429894365401520520}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -302,6 +280,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dc7b9870e5ee6804aa346c39e83f17c7, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Vob.VRMobInteraction
+--- !u!114 &5867362459497893582
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8788472130516112289}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &7548610693852835858
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8788472130516112289}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1001 &7374455095753343057
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobWheel.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobWheel.prefab
index c997fdda2..86bbe44de 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobWheel.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCMobWheel.prefab
@@ -13,6 +13,8 @@ GameObject:
- component: {fileID: 2854363553026066547}
- component: {fileID: 6907302684280751333}
- component: {fileID: 8384191140399634538}
+ - component: {fileID: 5498683309141561368}
+ - component: {fileID: 3429509007387962835}
m_Layer: 6
m_Name: .*
m_TagString: Untagged
@@ -152,34 +154,10 @@ MonoBehaviour:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 2854363553026066547}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -224,6 +202,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dc7b9870e5ee6804aa346c39e83f17c7, type: 3}
m_Name:
m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Adapters.Vob.VRMobInteraction
+--- !u!114 &5498683309141561368
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &3429509007387962835
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5926234300762413270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &6503575194566409312
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCNpc.prefab b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCNpc.prefab
index 3ea4fa907..302eae8b5 100644
--- a/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCNpc.prefab
+++ b/Assets/Gothic-VR/Resources/VR/Prefabs/Vobs/oCNpc.prefab
@@ -125,7 +125,6 @@ MonoBehaviour:
DebugPauseAtPlayAnimation: 0
DebugPauseAtStopAnimation: 0
DebugPlayAnimation:
- RootBone: {fileID: 8679908380237941234}
--- !u!114 &7657019000195239257
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -311,6 +310,8 @@ GameObject:
- component: {fileID: 8720130747125307888}
- component: {fileID: 957202922675155714}
- component: {fileID: 8095166574519349901}
+ - component: {fileID: 8068816277696156100}
+ - component: {fileID: 7853705596767096919}
m_Layer: 10
m_Name: RootMotionCollider
m_TagString: Untagged
@@ -471,78 +472,16 @@ MonoBehaviour:
m_Calls: []
Grabbed:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 4148423720954529152}
- m_TargetAssemblyTypeName: Gothic.HVR.Components.HVRoCNpc, Assembly-CSharp
- m_MethodName: OnGrabbed
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Released:
m_PersistentCalls:
m_Calls: []
HoverEnter:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 383060561904739675}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverEnter
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 3776598624381708510}
- m_TargetAssemblyTypeName: Gothic.Core.Adapters.UI.StatusBars.StatusBarAdapter,
- Gothic.Core
- m_MethodName: EnableBar
- m_Mode: 1
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
HoverExit:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 383060561904739675}
- m_TargetAssemblyTypeName: GVR.HVR.Components.HVRFocus, Assembly-CSharp
- m_MethodName: OnHoverExit
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 3776598624381708510}
- m_TargetAssemblyTypeName: Gothic.Core.Adapters.UI.StatusBars.StatusBarAdapter,
- Gothic.Core
- m_MethodName: DisableBar
- m_Mode: 1
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
Collided:
m_PersistentCalls:
m_Calls: []
@@ -575,6 +514,30 @@ MonoBehaviour:
HandGrabbers: []
Stabbers: []
Stabbable: {fileID: 0}
+--- !u!114 &8068816277696156100
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3647559741746323219}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5165ad186aed3fb408c5d43079b20d34, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Components.VrInteractable
+--- !u!114 &7853705596767096919
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3647559741746323219}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 594f5e7857d0629419c1bef807639a86, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Gothic.VR::Gothic.VR.Interaction.Backends.Hvr.HvrInteractableBridge
--- !u!1 &3748409399599174953
GameObject:
m_ObjectHideFlags: 0
@@ -877,17 +840,6 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6ce7e724ba52cae47a499f87c612cd47, type: 3}
---- !u!114 &3776598624381708510 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 1174396645238234420, guid: 6ce7e724ba52cae47a499f87c612cd47, type: 3}
- m_PrefabInstance: {fileID: 2604602267262121450}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: e6c728d9fa1f409bad98a31897d804e1, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!224 &6204853864044937825 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8230739814078363531, guid: 6ce7e724ba52cae47a499f87c612cd47, type: 3}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides.meta b/Assets/Gothic-VR/Scripts/Adapters/HVROverrides.meta
deleted file mode 100644
index 014cc8ec9..000000000
--- a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 9769f62ce70e4bdbb907c1dacfc8b6b3
-timeCreated: 1730258998
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRShoulderSocket.cs b/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRShoulderSocket.cs
deleted file mode 100644
index d102d805f..000000000
--- a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRShoulderSocket.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using HurricaneVR.Framework.Core.Utils;
-
-namespace Gothic.VR.Adapters.HVROverrides
-{
- ///
- /// Overwritten only to ensure, that our use "parent" as "*(Loader)" element with VobContainer.
- /// Class name is used for VRBackpack.OnBackpackReleasedFromShoulder() only.
- ///
- public class VRShoulderSocket : VRSocket
- {
-
- }
-}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Marvin/VRNpcMarvinAdapter.cs b/Assets/Gothic-VR/Scripts/Adapters/Marvin/VRNpcMarvinAdapter.cs
index 41644acdb..c277c5173 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Marvin/VRNpcMarvinAdapter.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Marvin/VRNpcMarvinAdapter.cs
@@ -3,8 +3,8 @@
using Gothic.Core.Models.Container;
using Gothic.Core.Services.Player;
using Gothic.Core.Extensions;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Daedalus;
@@ -17,13 +17,30 @@ public class VRNpcMarvinAdapter : MonoBehaviour
[Inject] private PlayerService _playerService;
private NpcContainer _npcData;
+ private VrInteractable _interactable;
private void Awake()
{
_npcData = GetComponentInParent().Npc.GetUserData();
}
- public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ ///
+ /// Subscribed in Start (not Awake), so that VRNpc (dialog/loot) always handles a grab first.
+ ///
+ private void Start()
+ {
+ _interactable = VrInteractable.Find(this);
+ if (_interactable != null)
+ _interactable.Grabbed += OnGrabbed;
+ }
+
+ private void OnDestroy()
+ {
+ if (_interactable != null)
+ _interactable.Grabbed -= OnGrabbed;
+ }
+
+ private void OnGrabbed(VrGrabArgs args)
{
// Safety return, until we have proper Marvin feature handling implemented (active = true/false)
return;
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Player/VRBackpack.cs b/Assets/Gothic-VR/Scripts/Adapters/Player/VRBackpack.cs
index fc5275e31..e94e0bca6 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Player/VRBackpack.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Player/VRBackpack.cs
@@ -2,7 +2,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
-using Assets.HurricaneVR.Framework.Shared.Utilities;
using Gothic.Core;
using Gothic.Core.Adapters.Vob;
using Gothic.Core.Manager;
@@ -13,12 +12,10 @@
using Gothic.Core.Services.Vm;
using Gothic.Core.Services.Vobs;
using Gothic.Core.Services.World;
-using Gothic.VR.Adapters.HVROverrides;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
using Gothic.VR.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
-using HurricaneVR.Framework.Core.Sockets;
-using HurricaneVR.Framework.Core.Utils;
using Reflex.Attributes;
using TMPro;
using UnityEngine;
@@ -26,12 +23,25 @@
namespace Gothic.VR.Adapters.Player
{
- [RequireComponent(typeof(HVRSocketable))]
+ ///
+ /// The player's backpack (inventory pages) and holsters. The backpack itself is a VrInteractable with an
+ /// IVrSocketContainer for its slots. Items put into holsters or slots are added to the hero's inventory.
+ ///
public class VRBackpack : MonoBehaviour
{
[SerializeField] private TMP_Text _categoryText;
[SerializeField] private TMP_Text _pagerText;
- [SerializeField] private HVRSocketContainer _socketContainer;
+
+ [Tooltip("Hip and shoulder holsters (IVrSocket). Items inside count as inventory.")]
+ [SerializeField] private GameObject[] _holsterSockets;
+
+ [Tooltip("Backpack slots (IVrSocket) which add/remove items to/from the inventory when used.")]
+ [SerializeField] private GameObject[] _inventorySockets;
+
+ private VrInteractable _interactable;
+ private IVrSocketContainer _socketContainer;
+ private readonly List _holsters = new();
+ private readonly List _slots = new();
private bool _isZenKitBootstrapped;
private int _currentPage = 1;
@@ -49,30 +59,87 @@ public class VRBackpack : MonoBehaviour
[Inject] private readonly VRWeaponService _vrWeaponService;
+ private void Awake()
+ {
+ _interactable = GetComponent();
+ _socketContainer = GetComponent();
+ CollectSockets(_holsterSockets, _holsters);
+ CollectSockets(_inventorySockets, _slots);
+
+ _interactable.Grabbed += OnBackpackGrabbedToShoulder;
+ _interactable.Released += OnBackpackReleasedFromShoulder;
+
+ foreach (var holster in _holsters)
+ {
+ holster.Grabbed += OnItemPutIntoHolster;
+ holster.Released += OnItemPutOutOfHolster;
+ }
+
+ foreach (var slot in _slots)
+ {
+ slot.Grabbed += OnItemPutIntoBackpack;
+ slot.Released += OnItemPutOutOfBackpack;
+ }
+ }
+
private void Start()
{
GlobalEventDispatcher.ZenKitBootstrapped.AddListener(Init);
}
- private void Init()
+ private void OnDestroy()
{
- var socketable = GetComponent();
+ if (_interactable != null)
+ {
+ _interactable.Grabbed -= OnBackpackGrabbedToShoulder;
+ _interactable.Released -= OnBackpackReleasedFromShoulder;
+ }
- socketable.UnsocketedClip = _audioService.CreateAudioClip(_audioService.InvOpen.File);
- socketable.SocketedClip = _audioService.CreateAudioClip(_audioService.InvClose.File);
+ foreach (var holster in _holsters)
+ {
+ holster.Grabbed -= OnItemPutIntoHolster;
+ holster.Released -= OnItemPutOutOfHolster;
+ }
+
+ foreach (var slot in _slots)
+ {
+ slot.Grabbed -= OnItemPutIntoBackpack;
+ slot.Released -= OnItemPutOutOfBackpack;
+ }
+ }
+
+ private static void CollectSockets(GameObject[] socketGos, List result)
+ {
+ if (socketGos == null)
+ return;
+
+ foreach (var socketGo in socketGos)
+ {
+ if (socketGo != null && socketGo.TryGetComponent(out IVrSocket socket))
+ result.Add(socket);
+ }
+ }
+
+ private void Init()
+ {
+ _interactable.SetSocketSounds(
+ socketed: _audioService.CreateAudioClip(_audioService.InvClose.File),
+ unsocketed: _audioService.CreateAudioClip(_audioService.InvOpen.File));
_isZenKitBootstrapped = true;
}
- public void OnBackpackGrabbedToShoulder(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnBackpackGrabbedToShoulder(VrGrabArgs args)
{
// Nothing to do for now.
// We could potentially remove the meshes inside Backpack or simply hide it from rendering later.
}
-
- public void OnBackpackReleasedFromShoulder(HVRGrabberBase grabber, HVRGrabbable grabbable)
+
+ private void OnBackpackReleasedFromShoulder(VrGrabArgs args)
{
- if (grabber is not VRShoulderSocket && grabber is not HVRShoulderSocket)
+ if (args.Kind != VrGrabberKind.Socket || args.GrabberGo == null)
+ return;
+ if (!args.GrabberGo.TryGetComponent(out IVrSocket socket) || !socket.IsShoulder)
return;
UpdateInventoryView();
@@ -82,21 +149,21 @@ public void OnBackpackReleasedFromShoulder(HVRGrabberBase grabber, HVRGrabbable
/// When putting into holster, culling is already deactivated.
/// We simply need to tell the game: add inventory amount.
///
- public void OnItemPutIntoHolster(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnItemPutIntoHolster(VrGrabArgs args)
{
- var vobLoader = grabbable.GetComponentInParent();
+ var vobLoader = args.Interactable.GetComponentInParent();
var vobContainer = vobLoader.Container;
_playerService.AddItem(vobContainer.Vob.Name, Mathf.Max(1, vobContainer.VobAs().Amount));
}
- public void OnItemPutIntoBackpack(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnItemPutIntoBackpack(VrGrabArgs args)
{
if (_tempIgnoreSocketing)
return;
-
- var vobLoader = grabbable.GetComponentInParent(true);
+
+ var vobLoader = args.Interactable.GetComponentInParent(true);
var vobContainer = vobLoader.Container;
_vobMeshCullingService.RemoveCullingEntry(vobContainer);
@@ -111,9 +178,9 @@ public void OnItemPutIntoBackpack(HVRGrabberBase grabber, HVRGrabbable grabbable
/// When putting out of holster, culling is already deactivated.
/// We simply need to tell the game: substract inventory amount.
///
- public void OnItemPutOutOfHolster(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnItemPutOutOfHolster(VrGrabArgs args)
{
- var vobLoader = grabbable.GetComponentInParent();
+ var vobLoader = args.Interactable.GetComponentInParent();
if (vobLoader == null)
return;
var vobContainer = vobLoader.Container;
@@ -121,12 +188,12 @@ public void OnItemPutOutOfHolster(HVRGrabberBase grabber, HVRGrabbable grabbable
_playerService.RemoveItem(vobContainer.Vob.Name, Mathf.Max(1, vobContainer.VobAs().Amount));
}
- public void OnItemPutOutOfBackpack(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnItemPutOutOfBackpack(VrGrabArgs args)
{
if (_tempIgnoreSocketing)
return;
- var vobLoader = grabbable.GetComponentInParent();
+ var vobLoader = args.Interactable.GetComponentInParent();
var vobContainer = vobLoader.Container;
_vobMeshCullingService.AddCullingEntry(vobContainer);
@@ -234,15 +301,15 @@ private void ClearSockets()
foreach (var socket in _socketContainer.Sockets)
{
// Nothing inside socket
- if (!socket.IsGrabbing)
+ if (!socket.IsOccupied)
continue;
// Destroy VobLoader GO after releasing it from slot (proper event handling)
- var heldRoot = socket.HeldObject.transform.parent.gameObject;
+ var heldRoot = socket.Held.transform.parent.gameObject;
socket.ForceRelease();
heldRoot.SetActive(false); // Disable it, as it would be with scale 1 in front of our camera for 1 second.
- // We need to wait until next frame to ensure HVR has removed the item from socket.
- this.ExecuteNextUpdate(() => Destroy(heldRoot));
+ // We need to wait until next frame to ensure the socket has removed the item.
+ StartCoroutine(DestroyNextFrame(heldRoot));
}
}
@@ -263,10 +330,16 @@ private void RefillSockets(List inventory)
});
vobContainer.Go.GetComponentInChildren().isKinematic = false; // Get rid of isKinematic warnings as the Grab is done "physically".
- _socketContainer.TryAddGrabbable(vobContainer.Go.GetComponentInChildren());
+ _socketContainer.TryAdd(vobContainer.Go.GetComponentInChildren());
}
}
+ private static IEnumerator DestroyNextFrame(GameObject go)
+ {
+ yield return null;
+ Destroy(go);
+ }
+
private void SubtractItemFromHand(List inventory, GameObject handItem)
{
if (handItem == null)
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerItemAdapter.cs b/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerItemAdapter.cs
index 856c3113a..ec77eb34d 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerItemAdapter.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerItemAdapter.cs
@@ -1,21 +1,42 @@
#if GOTHIC_HVR_INSTALLED
using Gothic.Core.Manager;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
using Reflex.Attributes;
using UnityEngine;
namespace Gothic.VR.Adapters.Player
{
+ ///
+ /// Sits on the player rig and listens to the hand and distance grabbers of both hands.
+ ///
public class VRPlayerItemAdapter : MonoBehaviour
{
[Inject] private readonly MarvinService _marvinService;
+ private IVrRig _rig;
+
+
+ private void Awake()
+ {
+ _rig = GetComponent();
+ foreach (var grabber in _rig.HandGrabbers)
+ grabber.BeforeGrabbed += OnBeforeGrabbed;
+ }
+
+ private void OnDestroy()
+ {
+ if (_rig == null)
+ return;
+
+ foreach (var grabber in _rig.HandGrabbers)
+ grabber.BeforeGrabbed -= OnBeforeGrabbed;
+ }
///
/// We need to set isKinematic=false in BeforeGrabbed, otherwise we get a warning at OnGrabbed event time afterward.
///
- public void OnBeforeGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnBeforeGrabbed(VrGrabArgs args)
{
// Ignore grabbing once, if MarvinSelectionMode is active.
if (_marvinService.IsMarvinSelectionMode)
@@ -23,11 +44,11 @@ public void OnBeforeGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
// OnGrabbed is normally called multiple times. Even after an object is already socketed. If so, then let's stop Grab behaviour.
// If we sock an object on our hips or backpack etc.
- if (grabber is HVRSocket)
+ if (args.Kind == VrGrabberKind.Socket || args.Interactable == null)
return;
// In Gothic, Items have no physics when lying around. We need to activate physics for HVR to properly move items into our hands.
- if (grabbable.TryGetComponent(out var rb))
+ if (args.Interactable.TryGetComponent(out var rb))
{
rb.isKinematic = false;
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerWeaponInteraction.cs b/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerWeaponInteraction.cs
index 2ceb096ba..9b35186a2 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerWeaponInteraction.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Player/VRPlayerWeaponInteraction.cs
@@ -5,11 +5,10 @@
using Gothic.Core.Models.Marvin;
using Gothic.Core.Models.Vm;
using Gothic.Core.Services;
-using Gothic.VR.Interaction.Backends.Hvr;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
using Gothic.VR.Models.Vob;
using Gothic.VR.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Vobs;
@@ -41,10 +40,38 @@ public class VRPlayerWeaponInteraction : MonoBehaviour, IMarvinPropertyCollector
[SerializeField] private float _velocityCheckDuration = 0.5f;
[SerializeField] private int _velocitySampleCount = 5;
+ private IVrRig _rig;
- public void OnGrabbed(HVRGrabberBase hand, HVRGrabbable item)
+
+ private void Awake()
+ {
+ _rig = GetComponent();
+ foreach (var grabber in _rig.HandGrabbers)
+ {
+ // Melee weapons are handled once they're in a hand, not while being pulled by distance.
+ if (grabber.Kind != VrGrabberKind.Hand)
+ continue;
+
+ grabber.Grabbed += OnGrabbed;
+ grabber.Released += OnReleased;
+ }
+ }
+
+ private void OnDestroy()
+ {
+ if (_rig == null)
+ return;
+
+ foreach (var grabber in _rig.HandGrabbers)
+ {
+ grabber.Grabbed -= OnGrabbed;
+ grabber.Released -= OnReleased;
+ }
+ }
+
+ private void OnGrabbed(VrGrabArgs args)
{
- var vobItem = item.GetComponentInParent();
+ var vobItem = args.Interactable != null ? args.Interactable.GetComponentInParent() : null;
var vobContainer = vobItem?.Container;
// We grab something not handled as VobItem.
@@ -57,13 +84,13 @@ public void OnGrabbed(HVRGrabberBase hand, HVRGrabbable item)
if (itemInstance!.MainFlag != (int)VmGothicEnums.ItemFlags.ItemKatNf)
return;
- _weaponService.OnGrabbed(((HVRHandGrabber)hand).HandSide.ToVr(), vobContainer, GetWeaponPhysicsConfig());
+ _weaponService.OnGrabbed(args.HandSide, vobContainer, GetWeaponPhysicsConfig());
SyncEquippedWeaponToHero(itemInstance, equip: true);
}
- public void OnReleased(HVRGrabberBase hand, HVRGrabbable item)
+ private void OnReleased(VrGrabArgs args)
{
- var vobItem = item.GetComponentInParent();
+ var vobItem = args.Interactable != null ? args.Interactable.GetComponentInParent() : null;
var vobContainer = vobItem?.Container;
// We grab something not handled as VobItem.
@@ -76,7 +103,7 @@ public void OnReleased(HVRGrabberBase hand, HVRGrabbable item)
if (itemInstance!.MainFlag != (int)VmGothicEnums.ItemFlags.ItemKatNf)
return;
- _weaponService.OnReleased(((HVRHandGrabber)hand).HandSide.ToVr(), GetWeaponPhysicsConfig());
+ _weaponService.OnReleased(args.HandSide, GetWeaponPhysicsConfig());
SyncEquippedWeaponToHero(itemInstance, equip: false);
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Player/VRSeat.cs b/Assets/Gothic-VR/Scripts/Adapters/Player/VRSeat.cs
index b82c8ca8d..0863fcd9c 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Player/VRSeat.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Player/VRSeat.cs
@@ -5,10 +5,10 @@
using Gothic.Core.Services.Context;
using Gothic.Core;
using Gothic.Core.Extensions;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Gothic.VR.Interaction.Ports;
using Gothic.VR.Services.Context;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
using Reflex.Attributes;
using UnityEngine;
@@ -38,6 +38,19 @@ public class VRSeat : MonoBehaviour
private Transform _currentSnapPoint;
private bool _canPlayerSit = true;
+ private VrInteractable _interactable;
+
+ private void Awake()
+ {
+ _interactable = VrInteractable.Find(this);
+ _interactable.Grabbed += OnGrabbed;
+ }
+
+ private void OnDestroy()
+ {
+ if (_interactable != null)
+ _interactable.Grabbed -= OnGrabbed;
+ }
private void GetSnapPoints()
{
@@ -54,7 +67,7 @@ private void GetSnapPoints()
}
}
- public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnGrabbed(VrGrabArgs args)
{
if (_snapPoints.IsEmpty())
{
diff --git a/Assets/Gothic-VR/Scripts/Adapters/VRFocus.cs b/Assets/Gothic-VR/Scripts/Adapters/VRFocus.cs
index 328c2aac3..8c6114d1e 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/VRFocus.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/VRFocus.cs
@@ -8,8 +8,8 @@
using Gothic.Core.Extensions;
using Gothic.Core.Manager;
using Gothic.Core.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Reflex.Attributes;
using TMPro;
using UnityEngine;
@@ -18,7 +18,8 @@ namespace Gothic.VR.Adapters
{
///
/// Handles focus brightness and name visibility for VOBs and NPCs.
- /// We leverage HVRGrabbable's events to show canvas of object name and alter brightness on all objects' mesh renderers.
+ /// We leverage VrInteractable's events to show canvas of object name and alter brightness on all objects'
+ /// mesh renderers.
///
/// Order of use is always:
/// 1. HoverEnter -> We hover from far or near (e.g. grab distance without pulling towards us)
@@ -40,11 +41,16 @@ public class VRFocus : MonoBehaviour
private bool _isHovered;
private Renderer _cachedObjectRenderer;
private bool _isNpc;
+ private VrInteractable _interactable;
private void Awake()
{
_isNpc = GetComponent() != null;
+ _interactable = VrInteractable.Find(this);
+ _interactable.HoverEntered += OnHoverEnter;
+ _interactable.HoverExited += OnHoverExit;
+
// DEBUG - Use this to enable brightening up all rendered objects if you want to check the attack window.
{
// GlobalEventDispatcher.FightWindowInitial.AddListener(_ => OnHoverEnter(1f));
@@ -60,7 +66,16 @@ private void Start()
_nameCanvas.SetActive(false);
}
- public void OnHoverEnter(HVRGrabberBase _, HVRGrabbable __)
+ private void OnDestroy()
+ {
+ if (_interactable == null)
+ return;
+
+ _interactable.HoverEntered -= OnHoverEnter;
+ _interactable.HoverExited -= OnHoverExit;
+ }
+
+ private void OnHoverEnter(VrGrabArgs _)
{
OnHoverEnter(_isNpc
? Constants.ShaderPropertyFocusBrightnessNpcValue
@@ -93,7 +108,7 @@ public void OnHoverEnter(float shaderPropertyFocusBrightnessValue)
_isHovered = true;
}
- public void OnHoverExit(HVRGrabberBase _, HVRGrabbable __)
+ private void OnHoverExit(VrGrabArgs _)
{
if (_featureBrightenUp)
{
diff --git a/Assets/Gothic-VR/Scripts/Adapters/VRNpc.cs b/Assets/Gothic-VR/Scripts/Adapters/VRNpc.cs
index 825aa5003..41bb7c5bb 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/VRNpc.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/VRNpc.cs
@@ -1,5 +1,6 @@
#if GOTHIC_HVR_INSTALLED
using Gothic.Core.Adapters.Npc;
+using Gothic.Core.Adapters.UI.StatusBars;
using Gothic.Core.Manager;
using Gothic.Core.Models.Container;
using Gothic.Core.Models.Vm;
@@ -9,8 +10,8 @@
using Gothic.Core.Services.World;
using Gothic.Core;
using Gothic.Core.Extensions;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Daedalus;
@@ -27,22 +28,55 @@ public class VRNpc : MonoBehaviour
private NpcContainer _npcData;
private VRNpcLoot _npcLoot;
+ private VrInteractable _interactable;
+ private StatusBarAdapter _healthBar;
private void Awake()
{
_npcData = GetComponentInParent().Npc.GetUserData();
_npcLoot = GetComponent();
+ _healthBar = GetComponentInChildren(true);
+
+ _interactable = VrInteractable.Find(this);
+ _interactable.Grabbed += OnGrabbed;
+ _interactable.HoverEntered += OnHoverEnter;
+ _interactable.HoverExited += OnHoverExit;
+ }
+
+ private void OnDestroy()
+ {
+ if (_interactable == null)
+ return;
+
+ _interactable.Grabbed -= OnGrabbed;
+ _interactable.HoverEntered -= OnHoverEnter;
+ _interactable.HoverExited -= OnHoverExit;
+ }
+
+ ///
+ /// The NPC's health bar is only visible while a hand hovers over the NPC.
+ ///
+ private void OnHoverEnter(VrGrabArgs _)
+ {
+ if (_healthBar != null)
+ _healthBar.EnableBar();
+ }
+
+ private void OnHoverExit(VrGrabArgs _)
+ {
+ if (_healthBar != null)
+ _healthBar.DisableBar();
}
- public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnGrabbed(VrGrabArgs args)
{
var isDead = _npcData.Props.BodyState == VmGothicEnums.BodyState.BsDead;
if (isDead && _configService.Dev.EnableNpcLooting && _npcLoot != null)
{
_npcLoot.Toggle(_npcData);
- // HVR sets isKinematic=false during grab; release immediately and freeze the corpse
- grabber.ForceRelease();
+ // Grabbing turns physics on (VRPlayerItemAdapter); release immediately and freeze the corpse
+ args.Interactable.ForceRelease();
_physicsService.DisablePhysicsForNpc(_npcData.PrefabProps);
return;
}
@@ -57,8 +91,8 @@ public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
_npcAiService.ExecutePerception(VmGothicEnums.PerceptionType.AssessTalk, _npcData.Props, _npcData.Instance, null, (NpcInstance)_gameStateService.GothicVm.GlobalHero);
}
- // Talking is a click, not a grab: release (HVR's grab turns physics on) and keep a seated NPC kinematic.
- grabber.ForceRelease();
+ // Talking is a click, not a grab: release (grabbing turns physics on) and keep a seated NPC kinematic.
+ args.Interactable.ForceRelease();
if (_npcData.IsUsingMob())
_physicsService.DisablePhysicsForNpc(_npcData.PrefabProps);
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/VRNpcLoot.cs b/Assets/Gothic-VR/Scripts/Adapters/VRNpcLoot.cs
index 8181fe115..f93d81ca0 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/VRNpcLoot.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/VRNpcLoot.cs
@@ -3,7 +3,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
-using Assets.HurricaneVR.Framework.Shared.Utilities;
using Gothic.Core;
using Gothic.Core.Adapters.Npc;
using Gothic.Core.Adapters.Vob;
@@ -16,10 +15,10 @@
using Gothic.Core.Services.Caches;
using Gothic.Core.Services.Npc;
using Gothic.Core.Services.Vobs;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
using Gothic.VR.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
-using HurricaneVR.Framework.Core.Sockets;
using Reflex.Attributes;
using TMPro;
using UnityEngine;
@@ -46,7 +45,7 @@ public class VRNpcLoot : MonoBehaviour
private NpcContainer _npcContainer;
private NpcLoader _npcLoader;
- private readonly List _sockets = new();
+ private readonly List _sockets = new();
private readonly List _socketRoots = new();
private bool _isOpen;
private bool _tempIgnoreSocketing;
@@ -119,8 +118,8 @@ private void CreateSockets()
socketGo.transform.localRotation = Quaternion.identity;
socketGo.transform.localScale = Vector3.one * 1.6f;
- var socket = socketGo.GetComponentInChildren();
- socket.Released.AddListener(OnItemTakenFromLoot);
+ var socket = socketGo.GetComponentInChildren();
+ socket.Released += OnItemTakenFromLoot;
_socketRoots.Add(socketGo);
_sockets.Add(socket);
@@ -129,6 +128,9 @@ private void CreateSockets()
private void DestroySockets()
{
+ foreach (var socket in _sockets)
+ socket.Released -= OnItemTakenFromLoot;
+
foreach (var root in _socketRoots)
{
if (root != null)
@@ -213,11 +215,11 @@ private IEnumerator PopulateSockets(bool clearFirst)
yield return null;
- var grabbable = vobContainer.Go.GetComponentInChildren(true);
- var freeSocket = _sockets.FirstOrDefault(s => !s.IsGrabbing);
+ var interactable = vobContainer.Go.GetComponentInChildren(true);
+ var freeSocket = _sockets.FirstOrDefault(s => !s.IsOccupied);
if (freeSocket != null)
{
- freeSocket.TryGrab(grabbable, true, true);
+ freeSocket.TryPlace(interactable, true);
if (entry.IsEquipped)
AddEquippedLabel(GetSocketRoot(freeSocket));
}
@@ -240,13 +242,13 @@ private void ClearSocketContents()
foreach (var socket in _sockets)
{
- if (!socket.IsGrabbing)
+ if (!socket.IsOccupied)
continue;
- var heldRoot = socket.HeldObject.transform.parent.gameObject;
+ var heldRoot = socket.Held.transform.parent.gameObject;
socket.ForceRelease();
heldRoot.SetActive(false);
- this.ExecuteNextUpdate(() => Destroy(heldRoot));
+ StartCoroutine(DestroyNextFrame(heldRoot));
}
}
@@ -263,12 +265,18 @@ private IEnumerator CloseSockets()
_vrWeaponService.DrawSoundsActive = true;
}
- public void OnItemTakenFromLoot(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private static IEnumerator DestroyNextFrame(GameObject go)
+ {
+ yield return null;
+ Destroy(go);
+ }
+
+ private void OnItemTakenFromLoot(VrGrabArgs args)
{
- if (_tempIgnoreSocketing)
+ if (_tempIgnoreSocketing || args.Interactable == null)
return;
- var vobLoader = grabbable.GetComponentInParent();
+ var vobLoader = args.Interactable.GetComponentInParent();
if (vobLoader?.Container == null)
return;
@@ -355,7 +363,7 @@ private GameObject FindEquippedWeaponGo(ItemInstance equipped)
return null;
}
- private GameObject GetSocketRoot(HVRSocket socket)
+ private GameObject GetSocketRoot(IVrSocket socket)
{
var idx = _sockets.IndexOf(socket);
return idx >= 0 && idx < _socketRoots.Count ? _socketRoots[idx] : null;
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerSocketInventory.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerSocketInventory.cs
index 5c43a6669..3dff0704e 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerSocketInventory.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerSocketInventory.cs
@@ -1,10 +1,11 @@
#if GOTHIC_HVR_INSTALLED
using Gothic.Core.Adapters.Vob;
using Gothic.Core.Models.Container;
+using System.Collections.Generic;
using Gothic.Core.Models.Vm;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
using Gothic.VR.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
using Reflex.Attributes;
using UnityEngine;
@@ -12,22 +13,60 @@ namespace Gothic.VR.Adapters.Vob.Container
{
///
/// Handle Socket-events for a whole Container (e.g., chest) and its corresponding sockets (rings where we put items into).
+ /// Plays the weapon (un)draw sound when a weapon is put into or taken out of a socket.
///
public class VRVobContainerSocketInventory : MonoBehaviour
{
[Inject] private VRWeaponService _vrWeaponService;
- public void OnBeforeGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ [Tooltip("Sockets outside of this GameObject's hierarchy (e.g. the player's holsters). " +
+ "Sockets below this GameObject are found automatically.")]
+ [SerializeField] private GameObject[] _additionalSockets;
+
+ private readonly List _sockets = new();
+
+ private void Awake()
{
- var container = grabbable.GetComponentInParent()?.Container;
+ _sockets.AddRange(GetComponentsInChildren(true));
+ foreach (var socketGo in _additionalSockets)
+ {
+ if (socketGo != null && socketGo.TryGetComponent(out IVrSocket socket))
+ _sockets.Add(socket);
+ }
+
+ foreach (var socket in _sockets)
+ {
+ socket.BeforeGrabbed += OnBeforeGrabbed;
+ socket.Released += OnReleased;
+ }
+ }
+
+ private void OnDestroy()
+ {
+ foreach (var socket in _sockets)
+ {
+ socket.BeforeGrabbed -= OnBeforeGrabbed;
+ socket.Released -= OnReleased;
+ }
+ }
+
+ private void OnBeforeGrabbed(VrGrabArgs args)
+ {
+ if (args.Interactable == null)
+ return;
+
+ var container = args.Interactable.GetComponentInParent()?.Container;
if (!IsWeapon(container))
return;
_vrWeaponService.PlayUndrawSound(container);
}
- public void OnReleased(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnReleased(VrGrabArgs args)
{
- var container = grabbable.GetComponentInParent()?.Container;
+ if (args.Interactable == null)
+ return;
+
+ var container = args.Interactable.GetComponentInParent()?.Container;
if (!IsWeapon(container))
return;
_vrWeaponService.PlayDrawSound(container);
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/LockPicking/VRContainerDoorPickingInteraction.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/LockPicking/VRContainerDoorPickingInteraction.cs
index a56cf5691..c79d5bc55 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/LockPicking/VRContainerDoorPickingInteraction.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/LockPicking/VRContainerDoorPickingInteraction.cs
@@ -10,7 +10,7 @@
using Gothic.VR.Services;
using Gothic.VR.Adapters.Vob.VobItem;
using Gothic.VR.Interaction.Models;
-using HurricaneVR.Framework.Components;
+using Gothic.VR.Interaction.Ports;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Vobs;
@@ -23,7 +23,6 @@ public class VRContainerDoorPickingInteraction : MonoBehaviour
[SerializeField] private GameObject _rootGO;
[SerializeField] private AudioSource _audioSource;
- [SerializeField] private HVRPhysicsDoor _hvrPhysicsDoor;
[Inject] private readonly VRPlayerService _vrPlayerService;
[Inject] private readonly AudioService _audioService;
@@ -36,6 +35,7 @@ public class VRContainerDoorPickingInteraction : MonoBehaviour
private VrHandSide _handSide;
private VobContainer _lockPick;
private VobContainer _lockable;
+ private IVrHinge _hinge;
private const string _lockInteractionColliderName = "LockPickInteraction";
@@ -51,7 +51,10 @@ public enum DoorLockStatus
private void Start()
{
- _lockable = GetComponentInParent().Container;
+ var vobLoader = GetComponentInParent();
+ _lockable = vobLoader.Container;
+ // Every door and chest has exactly one hinge (the door wing or the chest lid).
+ _hinge = vobLoader.GetComponentInChildren(true);
switch (_lockable.Vob)
{
case IDoor door:
@@ -84,7 +87,7 @@ private IEnumerator StartDelayed()
yield return null;
// Deactivate rotation
- _hvrPhysicsDoor.Lock();
+ _hinge.Lock();
}
private void OnTriggerEnter(Collider other)
@@ -233,12 +236,12 @@ private void TryUnlockWithKey(Collider other)
private void UnlockAndPushOpen()
{
// Reactivate rotation
- _hvrPhysicsDoor.Unlock();
+ _hinge.Unlock();
// Apply force in the door's forward direction (world space)
- var pushDirection = _hvrPhysicsDoor.transform.forward;
+ var pushDirection = _hinge.Transform.forward;
var pushForce = 10f;
- _hvrPhysicsDoor.GetComponent().AddForce(pushDirection * pushForce, ForceMode.Impulse);
+ _hinge.Rigidbody.AddForce(pushDirection * pushForce, ForceMode.Impulse);
gameObject.SetActive(false);
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRDigSpot.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRDigSpot.cs
index 7c57c2b9b..41bd31162 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRDigSpot.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRDigSpot.cs
@@ -6,8 +6,7 @@
using Gothic.Core.Models.Container;
using Gothic.Core.Models.Vm;
using Gothic.Core.Services.Vm;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Services;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Vobs;
@@ -38,22 +37,22 @@ public class VRDigSpot : MonoBehaviour
private const string _stateOneSuffix = "_S1";
[Inject] private readonly VmService _vmService;
+ [Inject] private readonly VRPlayerService _vrPlayerService;
private IInteractiveObject _mob;
private Renderer[] _renderers;
- private HVRHandGrabber[] _hands;
private int _hits;
private float _lastHitTime = float.NegativeInfinity;
- private HVRGrabbable _lastWeapon;
+ private GameObject _lastWeapon;
private bool? _isLastWeaponAllowed;
private Collider[] _lastWeaponColliders;
+ private Rigidbody _lastWeaponRigidbody;
private void Start()
{
var loader = GetComponentInParent();
_mob = loader?.Container?.Vob as IInteractiveObject;
_renderers = loader != null ? loader.GetComponentsInChildren(true) : Array.Empty();
- _hands = FindObjectsByType(FindObjectsSortMode.None);
// Also tells whether the mob is visible at all (G2 X marks were invisible in an older playtest).
Logger.Log($"[VRDigSpot] '{loader?.name}' ready: func={_mob?.OnStateChangeFunction}{_stateOneSuffix}, " +
@@ -69,31 +68,38 @@ private void FixedUpdate()
if (!TryGetBounds(out var spotBounds))
return;
- foreach (var hand in _hands)
- {
- var weapon = hand != null ? hand.GrabbedTarget : null;
- if (weapon == null)
- continue;
+ if (TryRegisterHit(_vrPlayerService.GrabbedItemLeft, spotBounds))
+ return;
- CacheWeapon(weapon);
+ TryRegisterHit(_vrPlayerService.GrabbedItemRight, spotBounds);
+ }
- var rb = weapon.Rigidbody;
- if (rb == null || rb.linearVelocity.magnitude < _minSwingSpeed)
- continue;
+ ///
+ /// Checks the item in one hand (null if the hand is empty).
+ ///
+ private bool TryRegisterHit(GameObject weapon, Bounds spotBounds)
+ {
+ if (weapon == null)
+ return false;
- if (!IntersectsWeapon(spotBounds))
- continue;
+ CacheWeapon(weapon);
- // Cheapest checks first: the tool lookup only runs for a fast weapon touching the spot.
- if (!IsAllowedTool(weapon))
- continue;
+ var rb = _lastWeaponRigidbody;
+ if (rb == null || rb.linearVelocity.magnitude < _minSwingSpeed)
+ return false;
- RegisterHit(weapon);
- return;
- }
+ if (!IntersectsWeapon(spotBounds))
+ return false;
+
+ // Cheapest checks first: the tool lookup only runs for a fast weapon touching the spot.
+ if (!IsAllowedTool(weapon))
+ return false;
+
+ RegisterHit(weapon);
+ return true;
}
- private void CacheWeapon(HVRGrabbable weapon)
+ private void CacheWeapon(GameObject weapon)
{
if (weapon == _lastWeapon)
return;
@@ -101,15 +107,16 @@ private void CacheWeapon(HVRGrabbable weapon)
_lastWeapon = weapon;
_isLastWeaponAllowed = null;
_lastWeaponColliders = weapon.GetComponentsInChildren();
+ _lastWeaponRigidbody = weapon.GetComponent();
}
- private bool IsAllowedTool(HVRGrabbable weapon)
+ private bool IsAllowedTool(GameObject weapon)
{
_isLastWeaponAllowed ??= CheckAllowedTool(weapon);
return _isLastWeaponAllowed.Value;
}
- private bool CheckAllowedTool(HVRGrabbable weapon)
+ private bool CheckAllowedTool(GameObject weapon)
{
var container = weapon.GetComponentInParent()?.Container;
var item = container?.GetItemInstance();
@@ -157,7 +164,7 @@ private bool IntersectsWeapon(Bounds spotBounds)
return false;
}
- private void RegisterHit(HVRGrabbable weapon)
+ private void RegisterHit(GameObject weapon)
{
_lastHitTime = Time.time;
_hits++;
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRMobInteraction.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRMobInteraction.cs
index 202b7b594..799f329af 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRMobInteraction.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRMobInteraction.cs
@@ -2,9 +2,9 @@
using Gothic.Core.Adapters.Vob;
using Gothic.Core.Logging;
using Gothic.Core.Services.Vobs;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Gothic.VR.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
using Reflex.Attributes;
using UnityEngine;
using Logger = Gothic.Core.Logging.Logger;
@@ -12,7 +12,7 @@
namespace Gothic.VR.Adapters.Vob
{
///
- /// Uses a mob (wheel, lever, shrine, bed, ...) when the hero grabs it. Sits next to the mob's HVRGrabbable.
+ /// Uses a mob (wheel, lever, shrine, bed, ...) when the hero grabs it. Sits next to the mob's VrInteractable.
/// The logic itself is platform neutral (MobInteractionService).
///
public class VRMobInteraction : MonoBehaviour
@@ -21,17 +21,30 @@ public class VRMobInteraction : MonoBehaviour
[Inject] private readonly MobInteractionService _mobInteractionService;
private bool _mobActivated;
+ private VrInteractable _interactable;
+ ///
+ /// Subscribed in Start (not Awake), so that e.g. VRSeat handles a grab first (as before).
+ ///
private void Start()
{
- if (TryGetComponent(out HVRGrabbable grabbable))
- {
- grabbable.Grabbed.AddListener(OnGrabbed);
- grabbable.Released.AddListener(OnReleased);
- }
+ if (!TryGetComponent(out _interactable))
+ return;
+
+ _interactable.Grabbed += OnGrabbed;
+ _interactable.Released += OnReleased;
+ }
+
+ private void OnDestroy()
+ {
+ if (_interactable == null)
+ return;
+
+ _interactable.Grabbed -= OnGrabbed;
+ _interactable.Released -= OnReleased;
}
- private void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnGrabbed(VrGrabArgs args)
{
if (_mobActivated)
return;
@@ -46,7 +59,7 @@ private void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
_vrPlayerService.HandleMobGrab(vobLoader);
}
- private void OnReleased(HVRGrabberBase _, HVRGrabbable __)
+ private void OnReleased(VrGrabArgs _)
{
_mobActivated = false;
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobContainer.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobContainer.cs
index 7273766c1..42598ccce 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobContainer.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobContainer.cs
@@ -8,7 +8,7 @@
using Gothic.Core.Logging;
using Gothic.Core.Manager;
using Gothic.Core.Services.Caches;
-using HurricaneVR.Framework.Components;
+using Gothic.VR.Interaction.Ports;
using Reflex.Attributes;
using UnityEngine;
using UnityEngine.SceneManagement;
@@ -44,8 +44,8 @@ private void Start()
}
///
- /// Add opening and closing sound to the containers HVR settings.
- /// The logic about when to play them is provided by HVR itself.
+ /// Add opening and closing sound to the container's hinge (lid).
+ /// The hinge itself decides when to play them.
///
private void PrepareSounds(IContainer vobContainer)
{
@@ -75,9 +75,8 @@ private void PrepareSounds(IContainer vobContainer)
}
// We leverage the same "door" script for containers (As it's also just an object to be rotated.
- var hvrDoor = GetComponentInChildren();
- hvrDoor.SFXOpened = _containerOpenedClips[mdsName.ToLower()];
- hvrDoor.SFXClosed = _containerClosedClips[mdsName.ToLower()];
+ var hinge = GetComponentInChildren();
+ hinge.SetSounds(_containerOpenedClips[mdsName.ToLower()], _containerClosedClips[mdsName.ToLower()]);
}
}
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobDoor.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobDoor.cs
index 249f6a260..c167e3a27 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobDoor.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobDoor.cs
@@ -6,7 +6,7 @@
using Gothic.Core.Services.Caches;
using Gothic.Core;
using Gothic.Core.Extensions;
-using HurricaneVR.Framework.Components;
+using Gothic.VR.Interaction.Ports;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Vobs;
@@ -29,8 +29,8 @@ private void Start()
}
///
- /// Add opening and closing sound to the containers HVR settings.
- /// The logic about when to play them is provided by HVR itself.
+ /// Add opening and closing sound to the door's hinge.
+ /// The hinge itself decides when to play them.
///
private void PrepareSounds(IDoor props)
{
@@ -65,9 +65,8 @@ private void PrepareSounds(IDoor props)
_doorClosedClips.Add(mdsName.ToLower(), _audioService.GetRandomSoundClip(closeSoundEffect));
}
- var hvrDoor = GetComponentInChildren();
- hvrDoor.SFXOpened = _doorOpenedClips[mdsName.ToLower()];
- hvrDoor.SFXClosed = _doorClosedClips[mdsName.ToLower()];
+ var hinge = GetComponentInChildren();
+ hinge.SetSounds(_doorOpenedClips[mdsName.ToLower()], _doorClosedClips[mdsName.ToLower()]);
}
}
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobItem.cs b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobItem.cs
index e61472ae7..4988eddce 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobItem.cs
+++ b/Assets/Gothic-VR/Scripts/Adapters/Vob/VRVobItem.cs
@@ -8,8 +8,8 @@
using Gothic.VR.Services;
using Gothic.Core;
using Gothic.Core.Services;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Reflex.Attributes;
using UnityEngine;
using UnityEngine.Animations;
@@ -32,6 +32,8 @@ public class VRVobItem : MonoBehaviour
private readonly Collider[] _overlapColliders = new Collider[1];
private static int _ignoreLayerCollisionCheck;
+ private VrInteractable _interactable;
+
private struct OverlapCheckData
{
@@ -54,11 +56,24 @@ private void Awake()
{
_ignoreLayerCollisionCheck = Constants.VobItemNoWorldCollision | Constants.HandLayer;
}
+
+ _interactable = GetComponent();
+ _interactable.Grabbed += OnGrabbed;
+ _interactable.Released += OnReleased;
}
private void Start()
{
- GetComponent().SetupColliders();
+ _interactable.SetupColliders();
+ }
+
+ private void OnDestroy()
+ {
+ if (_interactable == null)
+ return;
+
+ _interactable.Grabbed -= OnGrabbed;
+ _interactable.Released -= OnReleased;
}
///
@@ -66,21 +81,21 @@ private void Start()
/// 2. Grabbed via HandGrabber (direct grabbing into hand)
/// 3. Grabbed via Socket (e.g., backpack)
///
- public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnGrabbed(VrGrabArgs args)
{
// Ignore grabbing once, if MarvinSelectionMode is active.
if (_marvinService.IsMarvinSelectionMode)
{
- _marvinService.MarvinSelectionGO = grabbable.gameObject;
+ _marvinService.MarvinSelectionGO = args.Interactable.gameObject;
return;
}
// Held and socketed items must not push our own CharacterController.
- _vrPlayerService.IgnorePlayerCollision(grabbable, true);
+ _vrPlayerService.IgnorePlayerCollision(args.Interactable, true);
// OnGrabbed is normally called multiple times. Even after an object is already socketed. If so, then let's stop Grab behaviour.
// If we sock an object on our hips or backpack etc.
- if (grabber is HVRSocket)
+ if (args.Kind == VrGrabberKind.Socket)
return;
// Stop collisions while being dragged around (at least shortly; otherwise e.g. items might stick inside chests when pulled out).
@@ -94,7 +109,7 @@ public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
StartCoroutine(ReEnableCollisionRoutine());
_vobMeshCullingService?.StartTrackVobPositionUpdates(gameObject);
- _vrPlayerService.SetGrab(grabber, grabbable);
+ _vrPlayerService.SetGrab(args);
}
///
@@ -102,25 +117,25 @@ public void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
/// 2. Grabbed via HandGrabber (direct grabbing into hand)
/// 3. Grabbed via Socket (e.g., backpack)
///
- public void OnReleased(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ private void OnReleased(VrGrabArgs args)
{
// If we release an object from our hips or backpack etc.
// We then assume, that the item is already with correct values as it was grabbed before (shader, layer, ...)
- if (grabber is HVRSocket)
+ if (args.Kind == VrGrabberKind.Socket)
return;
gameObject.layer = Constants.VobItemLayer; // Back to default
// Dropped into the world (and not still in the other hand): we get stuck at it again.
- if (!grabbable.IsBeingHeld)
- _vrPlayerService.IgnorePlayerCollision(grabbable, false);
+ if (!args.Interactable.IsHeld)
+ _vrPlayerService.IgnorePlayerCollision(args.Interactable, false);
// Disable "ghostification" of object.
_dynamicMaterialService.ResetDynamicValue(gameObject, Constants.ShaderPropertyTransparency,
Constants.ShaderPropertyTransparencyDefault);
_vobMeshCullingService?.StopTrackVobPositionUpdates(gameObject);
- _vrPlayerService.UnsetGrab(grabber, grabbable);
+ _vrPlayerService.UnsetGrab(args);
}
///
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrEnumExtensions.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrEnumExtensions.cs
index fa554aa4c..adafcfa07 100644
--- a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrEnumExtensions.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrEnumExtensions.cs
@@ -1,6 +1,7 @@
#if GOTHIC_HVR_INSTALLED
using System;
using Gothic.VR.Interaction.Models;
+using HurricaneVR.Framework.Core.Grabbers;
using HurricaneVR.Framework.Core.Player;
using HurricaneVR.Framework.Shared;
@@ -21,6 +22,30 @@ public static VrHandSide ToVr(this HVRHandSide side)
return side == HVRHandSide.Left ? VrHandSide.Left : VrHandSide.Right;
}
+ public static VrGrabberKind ToVrKind(this HVRGrabberBase grabber)
+ {
+ return grabber switch
+ {
+ HVRHandGrabber => VrGrabberKind.Hand,
+ HVRForceGrabber => VrGrabberKind.Distance,
+ HVRSocket => VrGrabberKind.Socket,
+ _ => VrGrabberKind.Other
+ };
+ }
+
+ ///
+ /// Hand of a hand or distance grabber. Left for all other grabbers.
+ ///
+ public static VrHandSide ToVrHandSide(this HVRGrabberBase grabber)
+ {
+ return grabber switch
+ {
+ HVRHandGrabber hand => hand.HandSide.ToVr(),
+ HVRForceGrabber force when force.HandGrabber != null => force.HandGrabber.HandSide.ToVr(),
+ _ => VrHandSide.Left
+ };
+ }
+
public static HVRButtons ToHvr(this VrButton button)
{
return button switch
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs
new file mode 100644
index 000000000..ba754a132
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs
@@ -0,0 +1,45 @@
+#if GOTHIC_HVR_INSTALLED
+using Gothic.Core.Logging;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
+using HurricaneVR.Framework.Core;
+using HurricaneVR.Framework.Core.Grabbers;
+using Logger = Gothic.Core.Logging.Logger;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Translates HVR's (grabber, grabbable) event parameters into our VrGrabArgs.
+ ///
+ public static class HvrGrabArgsFactory
+ {
+ public static VrGrabArgs Create(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ return new VrGrabArgs(
+ grabber.ToVrKind(),
+ grabber.ToVrHandSide(),
+ GetInteractable(grabbable),
+ grabber != null ? grabber.gameObject : null);
+ }
+
+ ///
+ /// Our prefabs have a VrInteractable next to every HVRGrabbable. Grabbables from elsewhere (e.g. HVR's own
+ /// prefabs) get one on first use, so game code never receives null.
+ ///
+ public static VrInteractable GetInteractable(HVRGrabbable grabbable)
+ {
+ if (grabbable == null)
+ return null;
+
+ var interactable = grabbable.GetComponent();
+ if (interactable != null)
+ return interactable;
+
+ Logger.LogWarning($"[HVR] {grabbable.name} has no VrInteractable. Adding it at runtime.", LogCat.VR);
+ interactable = grabbable.gameObject.AddComponent();
+ grabbable.gameObject.AddComponent();
+ return interactable;
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs.meta
new file mode 100644
index 000000000..03cd04605
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabArgsFactory.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 292ed7e3ea9db914f80f7be3bda8d853
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs
new file mode 100644
index 000000000..d3e7dd6c1
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs
@@ -0,0 +1,87 @@
+#if GOTHIC_HVR_INSTALLED
+using System;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
+using HurricaneVR.Framework.Core;
+using HurricaneVR.Framework.Core.Grabbers;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Sits next to an HVR grabber (hand or force grabber) and forwards its events synchronously as IVrGrabber events.
+ /// BeforeGrabbed is also forwarded to the grabbed VrInteractable (HVRGrabbable has no such event).
+ ///
+ public class HvrGrabberBridge : MonoBehaviour, IVrGrabber
+ {
+ public event Action BeforeGrabbed;
+ public event Action Grabbed;
+ public event Action Released;
+
+ private HVRGrabberBase _grabber;
+ private bool _isSubscribed;
+
+ protected HVRGrabberBase Grabber
+ {
+ get
+ {
+ if (_grabber == null)
+ _grabber = GetComponent();
+ return _grabber;
+ }
+ }
+
+ public VrGrabberKind Kind => Grabber.ToVrKind();
+ public VrHandSide HandSide => Grabber.ToVrHandSide();
+
+ public VrInteractable Held => Grabber.IsGrabbing
+ ? HvrGrabArgsFactory.GetInteractable(Grabber.GrabbedTarget)
+ : null;
+
+ protected virtual void Awake()
+ {
+ if (Grabber == null)
+ return;
+
+ Grabber.BeforeGrabbed.AddListener(OnBeforeGrabbed);
+ Grabber.Grabbed.AddListener(OnGrabbed);
+ Grabber.Released.AddListener(OnReleased);
+ _isSubscribed = true;
+ }
+
+ protected virtual void OnDestroy()
+ {
+ if (!_isSubscribed || _grabber == null)
+ return;
+
+ _grabber.BeforeGrabbed.RemoveListener(OnBeforeGrabbed);
+ _grabber.Grabbed.RemoveListener(OnGrabbed);
+ _grabber.Released.RemoveListener(OnReleased);
+ }
+
+ public void ForceRelease()
+ {
+ Grabber.ForceRelease();
+ }
+
+ private void OnBeforeGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ var args = HvrGrabArgsFactory.Create(grabber, grabbable);
+ BeforeGrabbed?.Invoke(args);
+ if (args.Interactable != null)
+ args.Interactable.RaiseBeforeGrabbed(args);
+ }
+
+ private void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ Grabbed?.Invoke(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+
+ private void OnReleased(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ Released?.Invoke(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs.meta
new file mode 100644
index 000000000..deda76c4b
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrGrabberBridge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 4fc5f324acfcbc3428010a9db3c9422e
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs
new file mode 100644
index 000000000..e0d4d3c87
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs
@@ -0,0 +1,45 @@
+#if GOTHIC_HVR_INSTALLED
+using Gothic.VR.Interaction.Ports;
+using HurricaneVR.Framework.Components;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Sits next to an HVRPhysicsDoor (doors, and chest lids via HvrPhysicsChest).
+ ///
+ public class HvrHingeBridge : MonoBehaviour, IVrHinge
+ {
+ private HVRPhysicsDoor _door;
+
+ private HVRPhysicsDoor Door
+ {
+ get
+ {
+ if (_door == null)
+ _door = GetComponent();
+ return _door;
+ }
+ }
+
+ public Transform Transform => transform;
+ public Rigidbody Rigidbody => GetComponent();
+
+ public void Lock()
+ {
+ Door.Lock();
+ }
+
+ public void Unlock()
+ {
+ Door.Unlock();
+ }
+
+ public void SetSounds(AudioClip opened, AudioClip closed)
+ {
+ Door.SFXOpened = opened;
+ Door.SFXClosed = closed;
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs.meta
new file mode 100644
index 000000000..7a15f7d05
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrHingeBridge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9fca5660b7d87044b9f6309422813386
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs
new file mode 100644
index 000000000..bf6e3f25b
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs
@@ -0,0 +1,99 @@
+#if GOTHIC_HVR_INSTALLED
+using System.Collections.Generic;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Ports;
+using HurricaneVR.Framework.Core;
+using HurricaneVR.Framework.Core.Grabbers;
+using HurricaneVR.Framework.Core.Sockets;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Sits next to an HVRGrabbable and its VrInteractable. Forwards HVR's grabbable events synchronously to the
+ /// VrInteractable and executes its commands on the HVRGrabbable.
+ ///
+ public class HvrInteractableBridge : MonoBehaviour, IVrInteractableBackend
+ {
+ private HVRGrabbable _grabbable;
+ private VrInteractable _interactable;
+ private bool _isSubscribed;
+
+ private HVRGrabbable Grabbable
+ {
+ get
+ {
+ if (_grabbable == null)
+ _grabbable = GetComponent();
+ return _grabbable;
+ }
+ }
+
+ public bool IsHeld => Grabbable.IsBeingHeld;
+ public IReadOnlyList Colliders => Grabbable.Colliders;
+
+ private void Awake()
+ {
+ _interactable = GetComponent();
+ if (Grabbable == null || _interactable == null)
+ return;
+
+ Grabbable.HoverEnter.AddListener(OnHoverEnter);
+ Grabbable.HoverExit.AddListener(OnHoverExit);
+ Grabbable.Grabbed.AddListener(OnGrabbed);
+ Grabbable.Released.AddListener(OnReleased);
+ _isSubscribed = true;
+ }
+
+ private void OnDestroy()
+ {
+ if (!_isSubscribed || _grabbable == null)
+ return;
+
+ _grabbable.HoverEnter.RemoveListener(OnHoverEnter);
+ _grabbable.HoverExit.RemoveListener(OnHoverExit);
+ _grabbable.Grabbed.RemoveListener(OnGrabbed);
+ _grabbable.Released.RemoveListener(OnReleased);
+ }
+
+ public void ForceRelease()
+ {
+ Grabbable.ForceRelease();
+ }
+
+ public void SetupColliders()
+ {
+ Grabbable.SetupColliders();
+ }
+
+ public void SetSocketSounds(AudioClip socketed, AudioClip unsocketed)
+ {
+ if (!TryGetComponent(out HVRSocketable socketable))
+ return;
+
+ socketable.SocketedClip = socketed;
+ socketable.UnsocketedClip = unsocketed;
+ }
+
+ private void OnHoverEnter(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ _interactable.RaiseHoverEntered(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+
+ private void OnHoverExit(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ _interactable.RaiseHoverExited(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+
+ private void OnGrabbed(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ _interactable.RaiseGrabbed(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+
+ private void OnReleased(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ {
+ _interactable.RaiseReleased(HvrGrabArgsFactory.Create(grabber, grabbable));
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs.meta
new file mode 100644
index 000000000..ce3703878
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrInteractableBridge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 594f5e7857d0629419c1bef807639a86
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerPhysicsChest.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrPhysicsChest.cs
similarity index 89%
rename from Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerPhysicsChest.cs
rename to Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrPhysicsChest.cs
index ba001a482..183b9f351 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerPhysicsChest.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrPhysicsChest.cs
@@ -12,6 +12,8 @@
using Gothic.Core.Services.Caches;
using Gothic.Core.Services.Meshes;
using Gothic.Core.Services.Vobs;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Ports;
using HurricaneVR.Framework.Components;
using HurricaneVR.Framework.Core;
using HurricaneVR.Framework.Core.Sockets;
@@ -22,9 +24,13 @@
using ZenKit.Vobs;
using Logger = Gothic.Core.Logging.Logger;
-namespace Gothic.VR.Adapters.Vob.Container
+namespace Gothic.VR.Interaction.Backends.Hvr
{
- public class VRVobContainerPhysicsChest : HVRPhysicsDoor
+ ///
+ /// Chest lid (HVR physics door) which fills the chest's sockets with its content when opened for the first time.
+ /// Temporarily in the HVR backend as it subclasses HVRPhysicsDoor. The sockets are used via IVrSocketContainer.
+ ///
+ public class HvrPhysicsChest : HVRPhysicsDoor
{
[Inject] private readonly MeshService _meshService;
[Inject] private readonly VobService _vobService;
@@ -45,6 +51,7 @@ public class VRVobContainerPhysicsChest : HVRPhysicsDoor
[SerializeField] private HVRSocketContainer _socketContainer;
[SerializeField] private BoxCollider _collectorCollider;
private IContainer _vobContainer;
+ private IVrSocketContainer _sockets;
// Flags to ensure we always call On*() once, everytime open/close status changes.
private bool _openingForTheFirstTime = true;
@@ -64,7 +71,8 @@ public struct ContentItem
public override void Start()
{
base.Start();
-
+
+ _sockets = _socketContainer.GetComponent();
_socketContainer.gameObject.SetActive(false);
_vobContainer = _rootGo.GetComponentInParent().Container.VobAs();
@@ -114,7 +122,7 @@ private void OnClosed()
///
private void AlignSockets()
{
- var sockets = _socketContainer.Sockets;
+ var sockets = _sockets.Sockets;
// We need to dynamically fetch the bounding box of main mesh as some chests have the correct one inside BIP01 "CHEST_*_0" and others inside "ZM_CHEST*"
var meshFilters = _rootGo
@@ -172,7 +180,7 @@ private void AlignSockets()
// _socketRadius - Location is based on a 50% shift into the desired area as the drawing of a circle starts centered
// middleAlignment* - Centered location within a grid for an element
// min.x - Start point to calculate from left top
- socket.transform.localPosition = new (
+ socket.Transform.localPosition = new (
_socketCollectionMargin + _socketRadius + middleAlignmentX + centeredMainBound.min.x + rowWidth * currentColumn,
0,
_socketCollectionMargin + _socketRadius + middleAlignmentZ + centeredMainBound.min.z + rowDepth * currentRow
@@ -237,20 +245,20 @@ private List ParseContent(string contents)
private void PreSpawnContent(out AudioClip grabAudio, out AudioClip releaseAudio)
{
// We assume that all Slots have the same sound. Therefore fetching first only.
- var firstSocket = _socketContainer.Sockets.First();
- grabAudio = firstSocket.AudioGrabbedFallback;
- releaseAudio = firstSocket.AudioReleasedFallback;
+ var firstSocket = _sockets.Sockets.First();
+ grabAudio = firstSocket.PlacedSoundFallback;
+ releaseAudio = firstSocket.RemovedSoundFallback;
- foreach (var socket in _socketContainer.Sockets)
+ foreach (var socket in _sockets.Sockets)
{
- socket.AudioGrabbedFallback = null;
- socket.AudioReleasedFallback = null;
+ socket.PlacedSoundFallback = null;
+ socket.RemovedSoundFallback = null;
}
}
private IEnumerator SpawnContent(List contentItems)
{
- var sockets = _socketContainer.Sockets;
+ var sockets = _sockets.Sockets;
if (contentItems.Count > sockets.Count)
{
@@ -282,10 +290,10 @@ private IEnumerator SpawnContent(List contentItems)
private void PlaceObjectIntoContainer(VobContainer vobContainer)
{
- var grabbable = vobContainer.Go.GetComponentInChildren(true);
- if (_socketContainer.TryFindAvailableSocket(grabbable, out var socket))
+ var interactable = vobContainer.Go.GetComponentInChildren(true);
+ if (_sockets.TryFindFree(interactable, out var socket))
{
- socket.TryGrab(grabbable, true, true);
+ socket.TryPlace(interactable, true);
// We need to reset position as the element won't be placed inside it's parent in the chest.
vobContainer.Go.transform.localPosition = Vector3.zero;
}
@@ -296,10 +304,10 @@ private IEnumerator PostSpawnContent(AudioClip grabAudio, AudioClip releaseAudio
// We wait for some time to ensure the objects are automatically snapped into place.
yield return new WaitForSeconds(1f);
- foreach (var socket in _socketContainer.Sockets)
+ foreach (var socket in _sockets.Sockets)
{
- socket.AudioGrabbedFallback = grabAudio;
- socket.AudioReleasedFallback = releaseAudio;
+ socket.PlacedSoundFallback = grabAudio;
+ socket.RemovedSoundFallback = releaseAudio;
}
}
diff --git a/Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerPhysicsChest.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrPhysicsChest.cs.meta
similarity index 100%
rename from Assets/Gothic-VR/Scripts/Adapters/Vob/Container/VRVobContainerPhysicsChest.cs.meta
rename to Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrPhysicsChest.cs.meta
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrRig.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrRig.cs
index c516d8013..80fafa37e 100644
--- a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrRig.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrRig.cs
@@ -1,10 +1,13 @@
#if GOTHIC_HVR_INSTALLED
using System;
+using System.Collections.Generic;
+using Gothic.Core.Logging;
using Gothic.VR.Interaction.Models;
using Gothic.VR.Interaction.Ports;
using HurricaneVR.Framework.Core.Grabbers;
using HurricaneVR.Framework.Core.Player;
using UnityEngine;
+using Logger = Gothic.Core.Logging.Logger;
namespace Gothic.VR.Interaction.Backends.Hvr
{
@@ -15,6 +18,7 @@ namespace Gothic.VR.Interaction.Backends.Hvr
public class HvrRig : HVRPlayerController, IVrRig
{
private Camera _cameraComponent;
+ private List _handGrabbers;
public event Action Teleported;
@@ -97,6 +101,22 @@ float IVrRig.StepOffset
float IVrRig.FadeAlpha => ScreenFader ? ScreenFader.CurrentFade : 0f;
+ IReadOnlyList IVrRig.HandGrabbers
+ {
+ get
+ {
+ if (_handGrabbers != null)
+ return _handGrabbers;
+
+ _handGrabbers = new List();
+ AddGrabber(LeftHand);
+ AddGrabber(LeftHand ? LeftHand.ForceGrabber : null);
+ AddGrabber(RightHand);
+ AddGrabber(RightHand ? RightHand.ForceGrabber : null);
+ return _handGrabbers;
+ }
+ }
+
protected override void Awake()
{
base.Awake();
@@ -140,6 +160,17 @@ public void SetGrabbingEnabled(bool isEnabled)
SetGrabbingEnabled(RightHand, isEnabled);
}
+ private void AddGrabber(HVRGrabberBase grabber)
+ {
+ if (grabber == null)
+ return;
+
+ if (grabber.TryGetComponent(out IVrGrabber bridge))
+ _handGrabbers.Add(bridge);
+ else
+ Logger.LogError($"[HVR] {grabber.name} has no HvrGrabberBridge. Its grab events are lost.", LogCat.VR);
+ }
+
private static void SetGrabbingEnabled(HVRHandGrabber hand, bool isEnabled)
{
hand.AllowGrabbing = isEnabled;
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrShoulderSocket.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrShoulderSocket.cs
new file mode 100644
index 000000000..9a40be023
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrShoulderSocket.cs
@@ -0,0 +1,12 @@
+#if GOTHIC_HVR_INSTALLED
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Shoulder holster with the same VobLoader re-parenting as HvrSocket.
+ /// HvrSocketBridge.IsShoulder detects it (VRBackpack refreshes its inventory when it's taken from a shoulder).
+ ///
+ public class HvrShoulderSocket : HvrSocket
+ {
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRShoulderSocket.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrShoulderSocket.cs.meta
similarity index 100%
rename from Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRShoulderSocket.cs.meta
rename to Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrShoulderSocket.cs.meta
diff --git a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRSocket.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocket.cs
similarity index 98%
rename from Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRSocket.cs
rename to Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocket.cs
index fa22e5deb..6a3566ffd 100644
--- a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRSocket.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocket.cs
@@ -8,7 +8,7 @@
using UnityEngine;
using ZenKit.Daedalus;
-namespace Gothic.VR.Adapters.HVROverrides
+namespace Gothic.VR.Interaction.Backends.Hvr
{
///
/// Our VobItems have the following structure:
@@ -18,7 +18,7 @@ namespace Gothic.VR.Adapters.HVROverrides
/// Problem is that HVR assumes the root of an object to be moved is the Grabbable GO. But on our end it's one level higher.
/// This class therefore overwrites some logic to ensure, that our root with VobLoader (which will be used by e.g. Cullung) is the root.
///
- public class VRSocket : HVRSocket
+ public class HvrSocket : HVRSocket
{
protected override void OnGrabbed(HVRGrabArgs args)
{
diff --git a/Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRSocket.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocket.cs.meta
similarity index 100%
rename from Assets/Gothic-VR/Scripts/Adapters/HVROverrides/VRSocket.cs.meta
rename to Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocket.cs.meta
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs
new file mode 100644
index 000000000..b8cc44b2b
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs
@@ -0,0 +1,43 @@
+#if GOTHIC_HVR_INSTALLED
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Ports;
+using HurricaneVR.Framework.Core;
+using HurricaneVR.Framework.Core.Grabbers;
+using HurricaneVR.Framework.Core.Utils;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Sits next to an HVRSocket (or a subclass like HvrSocket). Grabbed/Released are the "placed"/"removed" events.
+ ///
+ public class HvrSocketBridge : HvrGrabberBridge, IVrSocket
+ {
+ private HVRSocket Socket => (HVRSocket)Grabber;
+
+ public Transform Transform => transform;
+ public bool IsOccupied => Socket.IsGrabbing;
+ public bool IsShoulder => Socket is HVRShoulderSocket or HvrShoulderSocket;
+
+ public AudioClip PlacedSoundFallback
+ {
+ get => Socket.AudioGrabbedFallback;
+ set => Socket.AudioGrabbedFallback = value;
+ }
+
+ public AudioClip RemovedSoundFallback
+ {
+ get => Socket.AudioReleasedFallback;
+ set => Socket.AudioReleasedFallback = value;
+ }
+
+ public bool TryPlace(VrInteractable interactable, bool silent)
+ {
+ if (interactable == null || !interactable.TryGetComponent(out HVRGrabbable grabbable))
+ return false;
+
+ return Socket.TryGrab(grabbable, true, silent);
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs.meta
new file mode 100644
index 000000000..be53bda43
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketBridge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 50fce3b6fdf41d541a8cb5f194cfd30a
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs
new file mode 100644
index 000000000..dbcce81a4
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs
@@ -0,0 +1,78 @@
+#if GOTHIC_HVR_INSTALLED
+using System.Collections.Generic;
+using Gothic.Core.Logging;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Ports;
+using HurricaneVR.Framework.Core;
+using HurricaneVR.Framework.Core.Sockets;
+using UnityEngine;
+using Logger = Gothic.Core.Logging.Logger;
+
+namespace Gothic.VR.Interaction.Backends.Hvr
+{
+ ///
+ /// Sits next to an HVRSocketContainer. Every socket of the container needs an HvrSocketBridge.
+ ///
+ public class HvrSocketContainerBridge : MonoBehaviour, IVrSocketContainer
+ {
+ private HVRSocketContainer _container;
+
+ private HVRSocketContainer Container
+ {
+ get
+ {
+ if (_container == null)
+ _container = GetComponent();
+ return _container;
+ }
+ }
+
+ public IReadOnlyList Sockets
+ {
+ get
+ {
+ var result = new List(Container.Sockets.Count);
+ foreach (var hvrSocket in Container.Sockets)
+ {
+ var socket = GetSocket(hvrSocket);
+ if (socket != null)
+ result.Add(socket);
+ }
+
+ return result;
+ }
+ }
+
+ public bool TryFindFree(VrInteractable interactable, out IVrSocket socket)
+ {
+ socket = null;
+ if (interactable == null || !interactable.TryGetComponent(out HVRGrabbable grabbable))
+ return false;
+ if (!Container.TryFindAvailableSocket(grabbable, out var hvrSocket))
+ return false;
+
+ socket = GetSocket(hvrSocket);
+ return socket != null;
+ }
+
+ public bool TryAdd(VrInteractable interactable)
+ {
+ if (interactable == null || !interactable.TryGetComponent(out HVRGrabbable grabbable))
+ return false;
+
+ return Container.TryAddGrabbable(grabbable);
+ }
+
+ private static IVrSocket GetSocket(Component hvrSocket)
+ {
+ if (hvrSocket == null)
+ return null;
+
+ var socket = hvrSocket.GetComponent();
+ if (socket == null)
+ Logger.LogError($"[HVR] Socket {hvrSocket.name} has no HvrSocketBridge.", LogCat.VR);
+ return socket;
+ }
+ }
+}
+#endif
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs.meta
new file mode 100644
index 000000000..490fa9571
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Backends/Hvr/HvrSocketContainerBridge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 3698197d5ce58d542a61ce69122e3160
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Components.meta b/Assets/Gothic-VR/Scripts/Interaction/Components.meta
new file mode 100644
index 000000000..b8f4465c7
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Components.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 16f7052a8ff00494ea3eb30e85ff472a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs b/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs
new file mode 100644
index 000000000..908a55e21
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs
@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using Gothic.VR.Interaction.Models;
+using Gothic.VR.Interaction.Ports;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Components
+{
+ ///
+ /// Game-facing side of everything the player can grab or hover (items, mobs, NPCs, doors, backpack).
+ /// Adapters subscribe to its C# events instead of the VR backend's events.
+ /// A backend bridge (IVrInteractableBackend) on the same GameObject raises the events and does the work.
+ ///
+ /// Events are raised synchronously in the backend's order: HoverEntered, BeforeGrabbed, Grabbed, HoverExited,
+ /// Released. BeforeGrabbed is only raised for grabbers with a bridge (player hands and sockets).
+ ///
+ public class VrInteractable : MonoBehaviour
+ {
+ public event Action HoverEntered;
+ public event Action HoverExited;
+ public event Action BeforeGrabbed;
+ public event Action Grabbed;
+ public event Action Released;
+
+ private IVrInteractableBackend _backend;
+
+ ///
+ /// Held by any grabber (hand, distance grabber, socket).
+ ///
+ public bool IsHeld => Backend != null && Backend.IsHeld;
+
+ public IReadOnlyList Colliders => Backend != null ? Backend.Colliders : Array.Empty();
+
+ private IVrInteractableBackend Backend
+ {
+ get
+ {
+ if (_backend == null)
+ _backend = GetComponent();
+ return _backend;
+ }
+ }
+
+ ///
+ /// The VrInteractable on this GameObject or (if none) the first one below it.
+ ///
+ public static VrInteractable Find(Component component)
+ {
+ var interactable = component.GetComponent();
+ if (interactable == null)
+ interactable = component.GetComponentInChildren(true);
+ return interactable;
+ }
+
+ ///
+ /// Releases the interactable from all grabbers.
+ ///
+ public void ForceRelease()
+ {
+ Backend?.ForceRelease();
+ }
+
+ ///
+ /// Re-collects the colliders (call after meshes/colliders were added at runtime).
+ ///
+ public void SetupColliders()
+ {
+ Backend?.SetupColliders();
+ }
+
+ ///
+ /// Sounds played when this interactable is put into or taken out of a socket.
+ ///
+ public void SetSocketSounds(AudioClip socketed, AudioClip unsocketed)
+ {
+ Backend?.SetSocketSounds(socketed, unsocketed);
+ }
+
+ internal void RaiseHoverEntered(VrGrabArgs args)
+ {
+ HoverEntered?.Invoke(args);
+ }
+
+ internal void RaiseHoverExited(VrGrabArgs args)
+ {
+ HoverExited?.Invoke(args);
+ }
+
+ internal void RaiseBeforeGrabbed(VrGrabArgs args)
+ {
+ BeforeGrabbed?.Invoke(args);
+ }
+
+ internal void RaiseGrabbed(VrGrabArgs args)
+ {
+ Grabbed?.Invoke(args);
+ }
+
+ internal void RaiseReleased(VrGrabArgs args)
+ {
+ Released?.Invoke(args);
+ }
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs.meta
new file mode 100644
index 000000000..2c12beb72
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Components/VrInteractable.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 5165ad186aed3fb408c5d43079b20d34
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs
new file mode 100644
index 000000000..1fcec850b
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs
@@ -0,0 +1,41 @@
+using Gothic.VR.Interaction.Components;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Models
+{
+ ///
+ /// Payload of all grab, release and hover events (VrInteractable, IVrGrabber, IVrSocket).
+ ///
+ public readonly struct VrGrabArgs
+ {
+ ///
+ /// What grabbed (or released) the interactable.
+ ///
+ public readonly VrGrabberKind Kind;
+
+ ///
+ /// The hand of the grabber. Only meaningful for Kind Hand and Distance; Left otherwise.
+ ///
+ public readonly VrHandSide HandSide;
+
+ ///
+ /// The object that is grabbed, released or hovered.
+ ///
+ public readonly VrInteractable Interactable;
+
+ ///
+ /// GameObject of the grabber (hand, socket, ...). Use GetComponent<IVrSocket>() for socket details.
+ ///
+ public readonly GameObject GrabberGo;
+
+ public VrGrabArgs(VrGrabberKind kind, VrHandSide handSide, VrInteractable interactable, GameObject grabberGo)
+ {
+ Kind = kind;
+ HandSide = handSide;
+ Interactable = interactable;
+ GrabberGo = grabberGo;
+ }
+
+ public bool IsHandOrDistance => Kind is VrGrabberKind.Hand or VrGrabberKind.Distance;
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs.meta
new file mode 100644
index 000000000..6929f2466
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabArgs.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: a47fcdb489238664a904c9a88c3297ca
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabberKind.cs b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabberKind.cs
index 33aec975e..43bd2b592 100644
--- a/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabberKind.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Models/VrGrabberKind.cs
@@ -5,8 +5,24 @@ namespace Gothic.VR.Interaction.Models
///
public enum VrGrabberKind
{
+ ///
+ /// A hand grabbing directly.
+ ///
Hand,
+
+ ///
+ /// A hand pulling an object from a distance (remote grab). The same object is grabbed by the Hand afterwards.
+ ///
Distance,
- Socket
+
+ ///
+ /// A socket: holster, backpack slot, chest slot, ...
+ ///
+ Socket,
+
+ ///
+ /// Any other grabber of the backend, e.g. a collector that forwards items into a socket container.
+ ///
+ Other
}
}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs
new file mode 100644
index 000000000..895a353e0
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs
@@ -0,0 +1,35 @@
+using System;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
+
+namespace Gothic.VR.Interaction.Ports
+{
+ ///
+ /// Something that grabs interactables: a hand, a distance grabber or a socket (see IVrSocket).
+ /// Implemented by a backend bridge next to the backend's grabber.
+ ///
+ public interface IVrGrabber
+ {
+ VrGrabberKind Kind { get; }
+
+ ///
+ /// Only meaningful for Kind Hand and Distance.
+ ///
+ VrHandSide HandSide { get; }
+
+ ///
+ /// The currently held interactable or null.
+ ///
+ VrInteractable Held { get; }
+
+ ///
+ /// Raised before the backend moves the interactable (e.g. to turn its physics on).
+ ///
+ event Action BeforeGrabbed;
+
+ event Action Grabbed;
+ event Action Released;
+
+ void ForceRelease();
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs.meta
new file mode 100644
index 000000000..045b46277
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrGrabber.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: fb91eb2372e3e9a4494d7e1570d2bdfb
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs
new file mode 100644
index 000000000..db138b212
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Ports
+{
+ ///
+ /// A physically rotating door or chest lid.
+ ///
+ public interface IVrHinge
+ {
+ Transform Transform { get; }
+ Rigidbody Rigidbody { get; }
+
+ ///
+ /// Stops the hinge from rotating (locked door/chest).
+ ///
+ void Lock();
+
+ void Unlock();
+
+ ///
+ /// Sounds played by the hinge when it reaches its opened or closed position.
+ ///
+ void SetSounds(AudioClip opened, AudioClip closed);
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs.meta
new file mode 100644
index 000000000..900bb5e4e
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrHinge.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 23c023ef2afcd3e46b320519c47df4f1
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs
new file mode 100644
index 000000000..b842a3684
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs
@@ -0,0 +1,18 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Ports
+{
+ ///
+ /// Implemented by the backend bridge next to a VrInteractable. Game code uses VrInteractable instead.
+ /// The bridge also raises the VrInteractable events.
+ ///
+ public interface IVrInteractableBackend
+ {
+ bool IsHeld { get; }
+ IReadOnlyList Colliders { get; }
+ void ForceRelease();
+ void SetupColliders();
+ void SetSocketSounds(AudioClip socketed, AudioClip unsocketed);
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs.meta
new file mode 100644
index 000000000..26ad4fca1
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrInteractableBackend.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 3fb0750b3fe7c2543a407b5765e78c03
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrRig.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrRig.cs
index 6d768f995..cb7dd7524 100644
--- a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrRig.cs
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrRig.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using Gothic.VR.Interaction.Models;
using UnityEngine;
@@ -55,6 +56,11 @@ public interface IVrRig
///
float FadeAlpha { get; }
+ ///
+ /// Direct (Hand) and distance grabbers of both hands.
+ ///
+ IReadOnlyList HandGrabbers { get; }
+
///
/// Raised with the new feet position whenever the player is teleported.
///
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs
new file mode 100644
index 000000000..4455dd125
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs
@@ -0,0 +1,36 @@
+using Gothic.VR.Interaction.Components;
+using UnityEngine;
+
+namespace Gothic.VR.Interaction.Ports
+{
+ ///
+ /// A slot that holds one interactable: hip holster, shoulder, backpack slot, chest slot, NPC loot slot.
+ /// Grabbed/Released (IVrGrabber) are raised when an interactable is placed into or taken out of it.
+ ///
+ public interface IVrSocket : IVrGrabber
+ {
+ Transform Transform { get; }
+ bool IsOccupied { get; }
+
+ ///
+ /// True for over-the-shoulder sockets (the backpack and the right shoulder holster).
+ ///
+ bool IsShoulder { get; }
+
+ ///
+ /// Places the interactable into this socket, ignoring the socket's filters.
+ ///
+ /// If true, no "placed" sound is played.
+ bool TryPlace(VrInteractable interactable, bool silent);
+
+ ///
+ /// Played when an interactable without own socket sounds is placed.
+ ///
+ AudioClip PlacedSoundFallback { get; set; }
+
+ ///
+ /// Played when an interactable without own socket sounds is removed.
+ ///
+ AudioClip RemovedSoundFallback { get; set; }
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs.meta
new file mode 100644
index 000000000..31adbb96b
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocket.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 0bd9577d17152d741a3534bc69986541
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs
new file mode 100644
index 000000000..f390f511a
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs
@@ -0,0 +1,23 @@
+using System.Collections.Generic;
+using Gothic.VR.Interaction.Components;
+
+namespace Gothic.VR.Interaction.Ports
+{
+ ///
+ /// A group of sockets (backpack inventory, chest content).
+ ///
+ public interface IVrSocketContainer
+ {
+ IReadOnlyList Sockets { get; }
+
+ ///
+ /// Finds the first free socket which accepts the interactable.
+ ///
+ bool TryFindFree(VrInteractable interactable, out IVrSocket socket);
+
+ ///
+ /// Places the interactable into the first free socket which accepts it (with sound).
+ ///
+ bool TryAdd(VrInteractable interactable);
+ }
+}
diff --git a/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs.meta b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs.meta
new file mode 100644
index 000000000..6b13c90bb
--- /dev/null
+++ b/Assets/Gothic-VR/Scripts/Interaction/Ports/IVrSocketContainer.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: cc17349213c5e6b4a8214b45d95b5bc8
\ No newline at end of file
diff --git a/Assets/Gothic-VR/Scripts/Services/VRPlayerService.cs b/Assets/Gothic-VR/Scripts/Services/VRPlayerService.cs
index effaeef49..5fd6f4cfb 100644
--- a/Assets/Gothic-VR/Scripts/Services/VRPlayerService.cs
+++ b/Assets/Gothic-VR/Scripts/Services/VRPlayerService.cs
@@ -12,8 +12,8 @@
using Gothic.Core.Models.Container;
using Gothic.Core.Services.Caches;
using Gothic.Core.Services.Npc;
-using HurricaneVR.Framework.Core;
-using HurricaneVR.Framework.Core.Grabbers;
+using Gothic.VR.Interaction.Components;
+using Gothic.VR.Interaction.Models;
using Reflex.Attributes;
using UnityEngine;
using ZenKit.Vobs;
@@ -22,7 +22,7 @@
namespace Gothic.VR.Services
{
///
- /// Contains global states about Hurricane VR player.
+ /// Contains global states about the VR player (items in hands).
///
public class VRPlayerService
{
@@ -44,18 +44,16 @@ public enum HandType
public bool IsDualGrabbed => GrabbedItemLeft != null && GrabbedItemLeft == GrabbedItemRight;
- public void SetGrab(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ ///
+ /// An item was grabbed by a hand (directly or by distance). Sockets and other grabbers are ignored.
+ ///
+ public void SetGrab(VrGrabArgs args)
{
- HVRHandGrabber handGrabber;
- if (grabber is HVRForceGrabber forceGrabber)
- handGrabber = forceGrabber.HandGrabber;
- else
- handGrabber = grabber as HVRHandGrabber;
-
- if (handGrabber == null)
+ if (!args.IsHandOrDistance)
return;
- if (handGrabber.IsLeftHand)
+ var grabbable = args.Interactable;
+ if (args.HandSide == VrHandSide.Left)
{
// If we did remote grabbing, this function is called twice (remote grabber+hand grabber).
// As we already count remote grabbing as "in inventory", we skip it the second time.
@@ -84,20 +82,17 @@ public void SetGrab(HVRGrabberBase grabber, HVRGrabbable grabbable)
_playerService.AddItem(instanceName, vobItem.Amount);
}
- public void UnsetGrab(HVRGrabberBase grabber, HVRGrabbable grabbable)
+ ///
+ /// An item was released by a hand (directly or by distance). Sockets and other grabbers are ignored.
+ ///
+ public void UnsetGrab(VrGrabArgs args)
{
- var dualGrabPrev = IsDualGrabbed;
-
- HVRHandGrabber handGrabber;
- if (grabber is HVRForceGrabber forceGrabber)
- handGrabber = forceGrabber.HandGrabber;
- else
- handGrabber = grabber as HVRHandGrabber;
-
- if (handGrabber == null)
+ if (!args.IsHandOrDistance)
return;
- if (handGrabber.IsLeftHand)
+ var dualGrabPrev = IsDualGrabbed;
+ var grabbable = args.Interactable;
+ if (args.HandSide == VrHandSide.Left)
{
// If we did remote grabbing, this function is called twice (remote grabber+hand grabber).
// As we already count remote grabbing as "in inventory", we skip it the second time.
@@ -130,7 +125,7 @@ public void UnsetGrab(HVRGrabberBase grabber, HVRGrabbable grabbable)
/// The player collides with VobItems (stuck at a sword in the ground like in Gothic). Items in our hands or
/// sockets (hips, back) would push our own CharacterController, so they ignore it while being held.
///
- public void IgnorePlayerCollision(HVRGrabbable grabbable, bool ignore)
+ public void IgnorePlayerCollision(VrInteractable grabbable, bool ignore)
{
var characterController = VRContextInteractionService.Rig?.CharacterController;
if (characterController == null)
diff --git a/Docs/HVR-replacement/phase-0-decouple.md b/Docs/HVR-replacement/phase-0-decouple.md
index 01695ff72..0ad0ff0aa 100644
--- a/Docs/HVR-replacement/phase-0-decouple.md
+++ b/Docs/HVR-replacement/phase-0-decouple.md
@@ -157,22 +157,42 @@ Split into four PRs so each one stays reviewable.
### PR 0c - Grab and socket events
-- [ ] Add `VrInteractable`, `HvrInteractableBridge`, `IVrSocket(Container)`, `HvrSocketBridge`.
-- [ ] Change adapter signatures from `(HVRGrabberBase, HVRGrabbable)` to `(VrGrabArgs)` and subscribe in
+- [x] Add `VrInteractable`, `HvrInteractableBridge`, `IVrSocket(Container)`, `HvrSocketBridge`.
+ Added on the way: `VrGrabArgs`, `VrGrabberKind.Other` (e.g. HVR's chest collector, which the old code treated
+ as "neither hand nor socket"), `IVrGrabber` + `HvrGrabberBridge` for the hand and force grabbers (HVRGrabbable
+ has no `BeforeGrabbed` event, only the grabber has; the grabber bridge also raises
+ `VrInteractable.BeforeGrabbed`), `IVrRig.HandGrabbers`, `IVrInteractableBackend` (contract between
+ `VrInteractable` and its bridge) and `HvrGrabArgsFactory`. `IVrSocket` extends `IVrGrabber`, so "placed" /
+ "removed" are its `Grabbed` / `Released` events. `TryPlace(interactable, silent)` keeps HVR's "no grab sound"
+ flag (the old `TryGrab(g, true, true)` calls). Grabbables without a `VrInteractable` get one at runtime
+ (warning log).
+- [x] Change adapter signatures from `(HVRGrabberBase, HVRGrabbable)` to `(VrGrabArgs)` and subscribe in
`Awake/OnEnable` instead of inspector bindings: `VRVobItem`, `VRPlayerItemAdapter`, `VRPlayerWeaponInteraction`,
`VRFocus`, `VRNpc`, `VRNpcMarvinAdapter`, `VRMobInteraction`, `VRSeat`, `VRBackpack`,
`VRVobContainerSocketInventory`, `VRNpcLoot`.
-- [ ] `VRPlayerService.SetGrab/UnsetGrab/IgnorePlayerCollision`: branch on `VrGrabArgs.Kind`, use
+ Subscribed in `Awake` / unsubscribed in `OnDestroy` (persistent calls also fired for disabled components).
+ `VRMobInteraction` and `VRNpcMarvinAdapter` subscribe in `Start`, so `VRSeat` / `VRNpc` still run first.
+ Cross-hierarchy wiring is serialized as GameObject lists: `VRBackpack._holsterSockets` / `_inventorySockets`,
+ `VRVobContainerSocketInventory._additionalSockets` (holsters; its own child sockets are found in code).
+ The NPC health bar hover (`StatusBarAdapter.EnableBar/DisableBar`, Gothic.Core) moved into `VRNpc`.
+- [x] `VRPlayerService.SetGrab/UnsetGrab/IgnorePlayerCollision`: branch on `VrGrabArgs.Kind`, use
`VrInteractable.Colliders`.
-- [ ] `VRDigSpot`: replace `FindObjectsByType` + `GrabbedTarget` with a query on
+- [x] `VRDigSpot`: replace `FindObjectsByType` + `GrabbedTarget` with a query on
`VRPlayerService` (`GrabbedItemLeft/Right` already exist).
-- [ ] `VRVobContainerPhysicsChest` subclasses `HVRPhysicsDoor`. For now move it under `Backends/Hvr`; Phase 4
- replaces it. The socket part goes through `IVrSocketContainer`.
-- [ ] `VRVobDoor`, `VRVobContainer` (door SFX), `VRContainerDoorPickingInteraction` (`Lock/Unlock`): add a small
+- [x] `VRVobContainerPhysicsChest` subclasses `HVRPhysicsDoor`. For now move it under `Backends/Hvr`; Phase 4
+ replaces it. The socket part goes through `IVrSocketContainer`. (Renamed to `HvrPhysicsChest`, GUID kept.
+ `VRSocket` / `VRShoulderSocket` moved to `Backends/Hvr/HvrSocket` / `HvrShoulderSocket`, GUIDs kept.
+ `HvrSocket` still re-implements parts of `HVRSocket`; rewrite it with the own socket in a later phase.)
+- [x] `VRVobDoor`, `VRVobContainer` (door SFX), `VRContainerDoorPickingInteraction` (`Lock/Unlock`): add a small
`IVrHinge` port (`Lock()`, `Unlock()`, `SetSounds(open, close)`) implemented by an HVR bridge.
-- [ ] **Prefabs (UnityMCP only):** in all 11 VR prefabs, add `VrInteractable` + bridge next to `HVRGrabbable` and
+ (`HvrHingeBridge`; also exposes `Transform` and `Rigidbody` for the push after unlocking. The lock picking
+ finds the hinge via the VobLoader instead of a serialized `HVRPhysicsDoor` reference.)
+- [x] **Prefabs (UnityMCP only):** in all 11 VR prefabs, add `VrInteractable` + bridge next to `HVRGrabbable` and
remove the inspector UnityEvent bindings to our methods (17× `OnBeforeGrabbed`, 18× `OnReleased`, 10×
`OnHoverEnter/Exit`, holster/backpack callbacks, …). If UnityMCP isn't connected, stop and report (CLAUDE.md).
+ Bridges were added next to every `HVRGrabbable`, `HVRSocket`, `HVRSocketContainer`, `HVRPhysicsDoor` and the
+ hand/force grabbers. Effective persistent calls from HVR events to Gothic methods: 0 (UI button bindings stay).
+ Dead overrides on a removed TechDemo component in `HVR - Player.prefab` were dropped as well.
### PR 0d - Gating and leftovers