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