diff --git a/Runtime/Prefabs/PhysicsJoint/Interactions.AngularJointDrive.prefab b/Runtime/Prefabs/PhysicsJoint/Interactions.AngularJointDrive.prefab index f73b216..e89b3df 100644 --- a/Runtime/Prefabs/PhysicsJoint/Interactions.AngularJointDrive.prefab +++ b/Runtime/Prefabs/PhysicsJoint/Interactions.AngularJointDrive.prefab @@ -47,6 +47,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: facade: {fileID: 7220336169150892439} + eventOutputContainer: {fileID: 6704188405665079684} targetValueReachedThreshold: 0.075 joint: {fileID: 1471341665110845562} jointContainer: {fileID: 5306551537282979864} @@ -478,6 +479,26 @@ PrefabInstance: propertyPath: m_Name value: Interactable.GrabAction.Follow objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: grabOffset + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: followTracking + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: isKinematicWhenActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: willInheritIsKinematicWhenInactiveFromConsumerRigidbody + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2857845961663347754, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: m_LocalPosition.x @@ -533,26 +554,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: grabOffset - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: followTracking - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: isKinematicWhenActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: willInheritIsKinematicWhenInactiveFromConsumerRigidbody - value: 0 - objectReference: {fileID: 0} - target: {fileID: 4297763714491022842, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: Emitted.m_PersistentCalls.m_Calls.Array.size @@ -682,6 +683,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 3970266325296692636} m_PrefabAsset: {fileID: 0} +--- !u!1 &6704188405665079684 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7643514540901309464, guid: 28c785035c1675342b9e41fb684b7948, + type: 3} + m_PrefabInstance: {fileID: 3970266325296692636} + m_PrefabAsset: {fileID: 0} --- !u!114 &7541688849528211887 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6895096941427192883, guid: 28c785035c1675342b9e41fb684b7948, @@ -730,6 +737,76 @@ PrefabInstance: propertyPath: m_Name value: Interactions.Interactable objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7881770749639878687} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7881770749639878687} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: set_angularDrag + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: set_angularDrag + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_FloatArgument + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_FloatArgument + value: 0.01 + objectReference: {fileID: 0} - target: {fileID: 8090891674275893548, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} propertyPath: m_LocalPosition.x @@ -805,76 +882,6 @@ PrefabInstance: propertyPath: consumerRigidbody value: objectReference: {fileID: 7881770749639878687} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 7881770749639878687} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 7881770749639878687} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: set_angularDrag - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: set_angularDrag - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: FirstGrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_FloatArgument - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 785982709505707726, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - propertyPath: LastUngrabbed.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_FloatArgument - value: 0.01 - objectReference: {fileID: 0} - target: {fileID: 8140612074155134679, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} propertyPath: ActiveAndEnabled.m_PersistentCalls.m_Calls.Array.data[0].m_Target diff --git a/Runtime/Prefabs/PhysicsJoint/Interactions.LinearJointDrive.prefab b/Runtime/Prefabs/PhysicsJoint/Interactions.LinearJointDrive.prefab index 4fcff17..a2cf4ea 100644 --- a/Runtime/Prefabs/PhysicsJoint/Interactions.LinearJointDrive.prefab +++ b/Runtime/Prefabs/PhysicsJoint/Interactions.LinearJointDrive.prefab @@ -457,6 +457,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: facade: {fileID: 2321230931700777055} + eventOutputContainer: {fileID: 7344147712558315100} targetValueReachedThreshold: 0.025 joint: {fileID: 2051297999214337113} --- !u!114 &1069736518602212927 @@ -596,6 +597,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1150828675843598916} m_PrefabAsset: {fileID: 0} +--- !u!1 &7344147712558315100 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7643514540901309464, guid: 28c785035c1675342b9e41fb684b7948, + type: 3} + m_PrefabInstance: {fileID: 1150828675843598916} + m_PrefabAsset: {fileID: 0} --- !u!114 &5785118602027589239 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6895096941427192883, guid: 28c785035c1675342b9e41fb684b7948, @@ -644,6 +651,21 @@ PrefabInstance: propertyPath: m_Name value: Interactable.GrabAction.Follow objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: followTracking + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: grabOffset + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: isKinematicWhenActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2857845961663347754, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: m_LocalPosition.x @@ -699,21 +721,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: followTracking - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: grabOffset - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: isKinematicWhenActive - value: 0 - objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} --- !u!114 &113661431433796937 stripped @@ -823,15 +830,15 @@ PrefabInstance: m_RemovedComponents: - {fileID: 8862883227734677280, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} ---- !u!4 &5398302578280163270 stripped +--- !u!4 &8190531345898926461 stripped Transform: - m_CorrespondingSourceObject: {fileID: 8090891674275893548, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + m_CorrespondingSourceObject: {fileID: 5406743248307111831, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} m_PrefabInstance: {fileID: 4224940000398522090} m_PrefabAsset: {fileID: 0} ---- !u!4 &8190531345898926461 stripped +--- !u!4 &5398302578280163270 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5406743248307111831, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + m_CorrespondingSourceObject: {fileID: 8090891674275893548, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} m_PrefabInstance: {fileID: 4224940000398522090} m_PrefabAsset: {fileID: 0} diff --git a/Runtime/Prefabs/Transform/Interactions.AngularTransformDrive.prefab b/Runtime/Prefabs/Transform/Interactions.AngularTransformDrive.prefab index 9c7b870..eebc8f0 100644 --- a/Runtime/Prefabs/Transform/Interactions.AngularTransformDrive.prefab +++ b/Runtime/Prefabs/Transform/Interactions.AngularTransformDrive.prefab @@ -170,6 +170,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: facade: {fileID: 2116566820272827043} + eventOutputContainer: {fileID: 6134235524921124102} targetValueReachedThreshold: 0.075 interactable: {fileID: 4763570561051037854} interactableMesh: {fileID: 6582222421973241952} @@ -385,6 +386,21 @@ PrefabInstance: propertyPath: m_Name value: Interactable.GrabAction.Follow objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: followTracking + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: grabOffset + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: isKinematicWhenInactive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2857845961663347754, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: m_LocalPosition.x @@ -440,21 +456,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: followTracking - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: grabOffset - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: isKinematicWhenInactive - value: 1 - objectReference: {fileID: 0} - target: {fileID: 7813340367162748559, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: Modified.m_PersistentCalls.m_Calls.Array.size @@ -537,36 +538,36 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} ---- !u!114 &2448744079595617656 stripped +--- !u!114 &9194919288075826165 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + m_CorrespondingSourceObject: {fileID: 7813340367162748559, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} m_PrefabInstance: {fileID: 1437886103419952506} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: aa6b2e26d85a4f740b961ef57e412d92, type: 3} + m_Script: {fileID: 11500000, guid: 4ed154ebd688ecb47a6b727f72b24d8e, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1979901800346492166 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 616540117915271292, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - m_PrefabInstance: {fileID: 1437886103419952506} - m_PrefabAsset: {fileID: 0} ---- !u!114 &9194919288075826165 stripped +--- !u!114 &2448744079595617656 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7813340367162748559, guid: 702caa48c730e92469a1c5144fd8ed46, + m_CorrespondingSourceObject: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} m_PrefabInstance: {fileID: 1437886103419952506} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ed154ebd688ecb47a6b727f72b24d8e, type: 3} + m_Script: {fileID: 11500000, guid: aa6b2e26d85a4f740b961ef57e412d92, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1979901800346492166 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 616540117915271292, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + m_PrefabInstance: {fileID: 1437886103419952506} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2584367644297197403 PrefabInstance: m_ObjectHideFlags: 0 @@ -723,6 +724,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 4553730003580614942} m_PrefabAsset: {fileID: 0} +--- !u!1 &6134235524921124102 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7643514540901309464, guid: 28c785035c1675342b9e41fb684b7948, + type: 3} + m_PrefabInstance: {fileID: 4553730003580614942} + m_PrefabAsset: {fileID: 0} --- !u!114 &6954216901078912301 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6895096941427192883, guid: 28c785035c1675342b9e41fb684b7948, @@ -848,15 +855,9 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} ---- !u!1 &2528702931149130789 stripped +--- !u!1 &6582222421973241952 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 7774344186399642229, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, - type: 3} - m_PrefabInstance: {fileID: 5256762017038687824} - m_PrefabAsset: {fileID: 0} ---- !u!4 &4087960247752855420 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8090891674275893548, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + m_CorrespondingSourceObject: {fileID: 1417232386877869616, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} m_PrefabInstance: {fileID: 5256762017038687824} m_PrefabAsset: {fileID: 0} @@ -872,9 +873,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 906c6376972e44f469330df394172abd, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &6582222421973241952 stripped +--- !u!4 &4087960247752855420 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8090891674275893548, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + type: 3} + m_PrefabInstance: {fileID: 5256762017038687824} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2528702931149130789 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 1417232386877869616, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, + m_CorrespondingSourceObject: {fileID: 7774344186399642229, guid: 1bb7642ebf8d0a34aa23fc586ea87e6a, type: 3} m_PrefabInstance: {fileID: 5256762017038687824} m_PrefabAsset: {fileID: 0} diff --git a/Runtime/Prefabs/Transform/Interactions.LinearTransformDrive.prefab b/Runtime/Prefabs/Transform/Interactions.LinearTransformDrive.prefab index 78b3302..cc49bd8 100644 --- a/Runtime/Prefabs/Transform/Interactions.LinearTransformDrive.prefab +++ b/Runtime/Prefabs/Transform/Interactions.LinearTransformDrive.prefab @@ -679,6 +679,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: facade: {fileID: 7040976075344879994} + eventOutputContainer: {fileID: 7468202290724158542} targetValueReachedThreshold: 0.025 interactable: {fileID: 7736847107121358400} positionClamper: {fileID: 7040976076037122787} @@ -975,6 +976,12 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 28c785035c1675342b9e41fb684b7948, type: 3} +--- !u!4 &1013191290765797267 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 268176985995790277, guid: 28c785035c1675342b9e41fb684b7948, + type: 3} + m_PrefabInstance: {fileID: 988352720675774550} + m_PrefabAsset: {fileID: 0} --- !u!114 &5910723491309409381 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6895096941427192883, guid: 28c785035c1675342b9e41fb684b7948, @@ -1011,9 +1018,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ead5b30fbf694c7408fc237b23268b0f, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &1013191290765797267 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 268176985995790277, guid: 28c785035c1675342b9e41fb684b7948, +--- !u!1 &7468202290724158542 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7643514540901309464, guid: 28c785035c1675342b9e41fb684b7948, type: 3} m_PrefabInstance: {fileID: 988352720675774550} m_PrefabAsset: {fileID: 0} @@ -1029,6 +1036,16 @@ PrefabInstance: propertyPath: m_Name value: Interactable.GrabAction.Follow objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: grabOffset + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, + type: 3} + propertyPath: isKinematicWhenInactive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2857845961663347754, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: m_LocalPosition.x @@ -1084,16 +1101,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: grabOffset - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3607323991379943426, guid: 702caa48c730e92469a1c5144fd8ed46, - type: 3} - propertyPath: isKinematicWhenInactive - value: 1 - objectReference: {fileID: 0} - target: {fileID: 3860205902975461033, guid: 702caa48c730e92469a1c5144fd8ed46, type: 3} propertyPath: Modified.m_PersistentCalls.m_Calls.Array.size diff --git a/Runtime/SharedResources/NestedPrefabs/Drive.ValueEvents.prefab b/Runtime/SharedResources/NestedPrefabs/Drive.ValueEvents.prefab index a51f279..b5b8551 100644 --- a/Runtime/SharedResources/NestedPrefabs/Drive.ValueEvents.prefab +++ b/Runtime/SharedResources/NestedPrefabs/Drive.ValueEvents.prefab @@ -27,10 +27,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 3040559368350653393} - {fileID: 2484523629552283254} - - {fileID: 7539768101072016783} - - {fileID: 5388528244570373268} - - {fileID: 9059953156845380599} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -124,8 +122,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 268176985995790277} - m_RootOrder: 3 + m_Father: {fileID: 3040559368350653393} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &6972250028207348321 MonoBehaviour: @@ -156,6 +154,11 @@ MonoBehaviour: m_Calls: [] m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + ValueUnchanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null Deactivated: m_PersistentCalls: m_Calls: [] @@ -185,12 +188,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5742787135457963381} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 268176985995790277} - m_RootOrder: 1 + m_Father: {fileID: 3040559368350653393} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2667777375758517427 MonoBehaviour: @@ -221,6 +224,11 @@ MonoBehaviour: m_Calls: [] m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + ValueUnchanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null Deactivated: m_PersistentCalls: m_Calls: [] @@ -288,6 +296,39 @@ MonoBehaviour: positiveBounds: minimum: 0 maximum: 0.01 +--- !u!1 &7643514540901309464 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3040559368350653393} + m_Layer: 0 + m_Name: EventOutputs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3040559368350653393 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643514540901309464} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7539768101072016783} + - {fileID: 5388528244570373268} + - {fileID: 9059953156845380599} + m_Father: {fileID: 268176985995790277} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8340268146509379411 GameObject: m_ObjectHideFlags: 0 @@ -360,7 +401,7 @@ GameObject: m_Component: - component: {fileID: 2484523629552283254} m_Layer: 0 - m_Name: Conversions + m_Name: Internal m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -381,7 +422,7 @@ Transform: - {fileID: 996542081760335835} - {fileID: 477648791592800755} m_Father: {fileID: 268176985995790277} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8660163246180987505 GameObject: @@ -411,8 +452,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 268176985995790277} - m_RootOrder: 2 + m_Father: {fileID: 3040559368350653393} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &562249971748497580 MonoBehaviour: @@ -443,6 +484,11 @@ MonoBehaviour: m_Calls: [] m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + ValueUnchanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Zinnia.Action.BooleanAction+UnityEvent, Zinnia.Runtime, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null Deactivated: m_PersistentCalls: m_Calls: [] diff --git a/Runtime/SharedResources/Scripts/AngularDriver/AngularJointDrive.cs b/Runtime/SharedResources/Scripts/AngularDriver/AngularJointDrive.cs index 44fede9..33b232d 100644 --- a/Runtime/SharedResources/Scripts/AngularDriver/AngularJointDrive.cs +++ b/Runtime/SharedResources/Scripts/AngularDriver/AngularJointDrive.cs @@ -80,6 +80,13 @@ protected override void SetUpInternals() base.SetUpInternals(); } + /// + protected override void EliminateDriveVelocity() + { + jointRigidbody.velocity = Vector3.zero; + jointRigidbody.angularVelocity = Vector3.zero; + } + /// protected override Transform GetDriveTransform() { @@ -98,8 +105,7 @@ protected override void AttemptApplyLimits() { if (!Joint.useLimits && ApplyLimits()) { - jointRigidbody.velocity = Vector3.zero; - jointRigidbody.angularVelocity = Vector3.zero; + EliminateDriveVelocity(); } } diff --git a/Runtime/SharedResources/Scripts/AngularDriver/AngularTransformDrive.cs b/Runtime/SharedResources/Scripts/AngularDriver/AngularTransformDrive.cs index dec8a89..a85e6c7 100644 --- a/Runtime/SharedResources/Scripts/AngularDriver/AngularTransformDrive.cs +++ b/Runtime/SharedResources/Scripts/AngularDriver/AngularTransformDrive.cs @@ -80,6 +80,13 @@ public override void ApplyExistingAngularVelocity(float multiplier = 1f) VelocityApplier.Apply(); } + /// + protected override void EliminateDriveVelocity() + { + VelocityApplier.Velocity = Vector3.zero; + VelocityApplier.AngularVelocity = Vector3.zero; + } + /// protected override Transform GetDriveTransform() { @@ -91,8 +98,7 @@ protected override void AttemptApplyLimits() { if (ApplyLimits()) { - VelocityApplier.Velocity = Vector3.zero; - VelocityApplier.AngularVelocity = Vector3.zero; + EliminateDriveVelocity(); } } diff --git a/Runtime/SharedResources/Scripts/Driver/Drive.cs b/Runtime/SharedResources/Scripts/Driver/Drive.cs index 635192d..209db8a 100644 --- a/Runtime/SharedResources/Scripts/Driver/Drive.cs +++ b/Runtime/SharedResources/Scripts/Driver/Drive.cs @@ -16,22 +16,34 @@ /// The actual concrete implementation of the drive being used. public abstract class Drive : MonoBehaviour, IProcessable where TFacade : DriveFacade where TSelf : Drive { - #region Facade Settings + #region Reference Settings /// /// The public interface facade. /// [Serialized] - [field: Header("Facade Settings"), DocumentedByXml, Restricted] + [field: Header("Reference Settings"), DocumentedByXml, Restricted] public TFacade Facade { get; protected set; } + /// + /// The containing the output event actions. + /// + [Serialized] + [field: DocumentedByXml, Restricted] + public GameObject EventOutputContainer { get; protected set; } #endregion - #region Threshold Settings + #region Target Settings /// /// The threshold that the current normalized value of the control can be within to consider the target value has been reached. /// [Serialized] - [field: Header("Threshold Settings"), DocumentedByXml] + [field: Header("Target Settings"), DocumentedByXml] public float TargetValueReachedThreshold { get; set; } = 0.025f; + /// + /// Determines whether to emit the drive events. + /// + [Serialized] + [field: DocumentedByXml] + public bool EmitEvents { get; set; } = true; #endregion /// @@ -75,6 +87,26 @@ public abstract class Drive : MonoBehaviour, IProcessable where /// Whether the control is moving or not. /// protected bool isMoving; + /// + /// Whether the drive is moving to the initial target value. + /// + protected bool isMovingToInitialTargetValue; + /// + /// The cached value for . + /// + protected bool cachedEmitEvents; + /// + /// The cached value for . + /// + protected bool cachedMoveToTargetValue; + /// + /// The cached value for . + /// + protected float cachedTargetValue; + /// + /// The cached value for . + /// + protected float cachedDriveSpeed; /// /// Sets up the drive mechanism. @@ -191,6 +223,7 @@ public virtual void ConfigureAutoDrive(bool autoDrive) { } protected virtual void OnEnable() { SetUp(); + MoveToInitialTargetValue(); } /// @@ -204,6 +237,11 @@ protected virtual void SetUpInternals() { } /// The value to set the drive target to. protected virtual void SetDriveTargetValue(Vector3 targetValue) { } + /// + /// Removes any velocity being applied to the drive. + /// + protected virtual void EliminateDriveVelocity() { } + /// /// Gets the drive control target value. /// @@ -237,6 +275,11 @@ protected virtual float CalculateStepValue(TFacade facade) /// protected virtual void EmitValueChanged() { + if (!EmitEvents) + { + return; + } + Facade.ValueChanged?.Invoke(Value); } @@ -245,6 +288,17 @@ protected virtual void EmitValueChanged() /// protected virtual void EmitNormalizedValueChanged() { + if (isMovingToInitialTargetValue && NormalizedValue.ApproxEquals(Facade.InitialTargetValue)) + { + ResetToCacheAfterReachedInitialTargetValue(); + return; + } + + if (!EmitEvents) + { + return; + } + Facade.NormalizedValueChanged?.Invoke(NormalizedValue); } @@ -253,6 +307,11 @@ protected virtual void EmitNormalizedValueChanged() /// protected virtual void EmitStepValueChanged() { + if (!EmitEvents) + { + return; + } + Facade.StepValueChanged?.Invoke(StepValue); } @@ -261,6 +320,11 @@ protected virtual void EmitStepValueChanged() /// protected virtual void EmitTargetValueReached() { + if (!EmitEvents) + { + return; + } + Facade.TargetValueReached?.Invoke(NormalizedValue); } @@ -269,6 +333,11 @@ protected virtual void EmitTargetValueReached() /// protected virtual void EmitStartedMoving() { + if (!EmitEvents) + { + return; + } + Facade.StartedMoving?.Invoke(0f); } @@ -277,7 +346,49 @@ protected virtual void EmitStartedMoving() /// protected virtual void EmitStoppedMoving() { + if (!EmitEvents) + { + return; + } + Facade.StoppedMoving?.Invoke(0f); } + + /// + /// Moves the drive to the initial target value. + /// + protected virtual void MoveToInitialTargetValue() + { + if (!Facade.StartAtInitialTargetValue) + { + return; + } + + cachedEmitEvents = EmitEvents; + cachedMoveToTargetValue = Facade.MoveToTargetValue; + cachedTargetValue = Facade.TargetValue; + cachedDriveSpeed = Facade.DriveSpeed; + + isMovingToInitialTargetValue = true; + EmitEvents = false; + Facade.MoveToTargetValue = true; + Facade.TargetValue = Facade.InitialTargetValue; + Facade.DriveSpeed = float.MaxValue; + SetUp(); + } + + /// + /// Resets the drive parameters to the cached values after the initial target value is reached. + /// + protected virtual void ResetToCacheAfterReachedInitialTargetValue() + { + EliminateDriveVelocity(); + isMovingToInitialTargetValue = false; + EmitEvents = cachedEmitEvents; + Facade.MoveToTargetValue = cachedMoveToTargetValue; + Facade.TargetValue = cachedTargetValue; + Facade.DriveSpeed = cachedDriveSpeed; + SetUp(); + } } } \ No newline at end of file diff --git a/Runtime/SharedResources/Scripts/Driver/DriveFacade.cs b/Runtime/SharedResources/Scripts/Driver/DriveFacade.cs index 166a9c6..7af35b6 100644 --- a/Runtime/SharedResources/Scripts/Driver/DriveFacade.cs +++ b/Runtime/SharedResources/Scripts/Driver/DriveFacade.cs @@ -74,23 +74,38 @@ public abstract class DriveFacade : MonoBehaviour where TDrive : [field: Header("Drive Settings"), DocumentedByXml] public DriveAxis.Axis DriveAxis { get; set; } = Driver.DriveAxis.Axis.XAxis; /// - /// Determines if the drive should move the element to the set . + /// The speed in which the drive will attempt to move the control to the desired value. /// [Serialized] [field: DocumentedByXml] - public bool MoveToTargetValue { get; set; } + public float DriveSpeed { get; set; } = 10f; + #endregion + + #region Target Value Settings /// - /// The normalized value to attempt to drive the control to if the is set to . + /// Determines if the drive should start the control at the when it is first enabled (no events will be emitted). + /// + [Serialized] + [field: Header("Target Value Settings"), DocumentedByXml] + public bool StartAtInitialTargetValue { get; set; } + /// + /// The normalized value to attempt to drive the control to when it is first enabled. /// [Serialized] [field: DocumentedByXml, Range(0f, 1f)] - public float TargetValue { get; set; } = 0.5f; + public float InitialTargetValue { get; set; } = 0.5f; /// - /// The speed in which the drive will attempt to move the control to the desired value. + /// Determines if the drive should move the element to the set . /// [Serialized] [field: DocumentedByXml] - public float DriveSpeed { get; set; } = 10f; + public bool MoveToTargetValue { get; set; } + /// + /// The normalized value to attempt to drive the control to if the is set to . + /// + [Serialized] + [field: DocumentedByXml, Range(0f, 1f)] + public float TargetValue { get; set; } = 0.5f; #endregion #region Step Settings diff --git a/Runtime/SharedResources/Scripts/LinearDriver/LinearJointDrive.cs b/Runtime/SharedResources/Scripts/LinearDriver/LinearJointDrive.cs index e7534d6..5eb1334 100644 --- a/Runtime/SharedResources/Scripts/LinearDriver/LinearJointDrive.cs +++ b/Runtime/SharedResources/Scripts/LinearDriver/LinearJointDrive.cs @@ -22,6 +22,11 @@ public class LinearJointDrive : LinearDrive public ConfigurableJoint Joint { get; protected set; } #endregion + /// + /// The that the joint is using. + /// + protected Rigidbody jointRigidbody; + /// [RequiresBehaviourState] public override Vector3 CalculateDriveAxis(DriveAxis.Axis driveAxis) @@ -63,6 +68,12 @@ public override void ProcessDriveSpeed(float driveSpeed, bool moveToTargetValue) Joint.yDrive = snapDriver; Joint.zDrive = snapDriver; } + /// + protected override void SetUpInternals() + { + jointRigidbody = Joint.GetComponent(); + base.SetUpInternals(); + } /// protected override Transform GetDriveTransform() @@ -75,5 +86,12 @@ protected override void SetDriveTargetValue(Vector3 targetValue) { Joint.targetPosition = targetValue; } + + /// + protected override void EliminateDriveVelocity() + { + jointRigidbody.velocity = Vector3.zero; + jointRigidbody.angularVelocity = Vector3.zero; + } } } \ No newline at end of file