From 97da432c35b8c7aaf9dd2c39e2aa4b1f55f36065 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 27 Jan 2021 16:15:06 +0800 Subject: +behaviour designer --- .../Runtime/Basic Tasks/Quaternion/Angle.cs | 29 ++++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Angle.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/AngleAxis.cs | 30 +++++++++++++++++++++ .../Basic Tasks/Quaternion/AngleAxis.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Dot.cs | 29 ++++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Dot.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Euler.cs | 27 +++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Euler.cs.meta | 8 ++++++ .../Basic Tasks/Quaternion/FromToRotation.cs | 29 ++++++++++++++++++++ .../Basic Tasks/Quaternion/FromToRotation.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Identity.cs | 24 +++++++++++++++++ .../Basic Tasks/Quaternion/Identity.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Inverse.cs | 26 ++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Inverse.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Lerp.cs | 31 ++++++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Lerp.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/LookRotation.cs | 29 ++++++++++++++++++++ .../Basic Tasks/Quaternion/LookRotation.cs.meta | 8 ++++++ .../Basic Tasks/Quaternion/RotateTowards.cs | 31 ++++++++++++++++++++++ .../Basic Tasks/Quaternion/RotateTowards.cs.meta | 8 ++++++ .../Runtime/Basic Tasks/Quaternion/Slerp.cs | 31 ++++++++++++++++++++++ .../Runtime/Basic Tasks/Quaternion/Slerp.cs.meta | 8 ++++++ 22 files changed, 404 insertions(+) create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs.meta create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs create mode 100644 Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs.meta (limited to 'Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion') diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs new file mode 100644 index 00000000..a6e485ef --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the angle in degrees between two rotations.")] + public class Angle : Action + { + [Tooltip("The first rotation")] + public SharedQuaternion firstRotation; + [Tooltip("The second rotation")] + public SharedQuaternion secondRotation; + [Tooltip("The stored result")] + [RequiredField] + public SharedFloat storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Angle(firstRotation.Value, secondRotation.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + firstRotation = secondRotation = Quaternion.identity; + storeResult = 0; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs.meta new file mode 100644 index 00000000..0aa20992 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Angle.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d316a25dcddd6f4a981df05a1eeaf7c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs new file mode 100644 index 00000000..4c6eecf9 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the rotation which rotates the specified degrees around the specified axis.")] + public class AngleAxis : Action + { + [Tooltip("The number of degrees")] + public SharedFloat degrees; + [Tooltip("The axis direction")] + public SharedVector3 axis; + [Tooltip("The stored result")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.AngleAxis(degrees.Value, axis.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + degrees = 0; + axis = Vector3.zero; + storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs.meta new file mode 100644 index 00000000..99c4ba7b --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/AngleAxis.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82152b844829f8f43ab44f35bf7d786f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs new file mode 100644 index 00000000..d00fa95b --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the dot product between two rotations.")] + public class Dot : Action + { + [Tooltip("The first rotation")] + public SharedQuaternion leftRotation; + [Tooltip("The second rotation")] + public SharedQuaternion rightRotation; + [Tooltip("The stored result")] + [RequiredField] + public SharedFloat storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Dot(leftRotation.Value, rightRotation.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + leftRotation = rightRotation = Quaternion.identity; + storeResult = 0; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs.meta new file mode 100644 index 00000000..40a00107 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Dot.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fa9235523569d574aa7d22ce89423eca +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs new file mode 100644 index 00000000..e9930832 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the quaternion of a euler vector.")] + public class Euler : Action + { + [Tooltip("The euler vector")] + public SharedVector3 eulerVector; + [Tooltip("The stored quaternion")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Euler(eulerVector.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + eulerVector = Vector3.zero; + storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs.meta new file mode 100644 index 00000000..048cc76c --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Euler.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b4d275b4450a324409ace385a718d9ee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs new file mode 100644 index 00000000..5e68b434 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores a rotation which rotates from the first direction to the second.")] + public class FromToRotation : Action + { + [Tooltip("The from rotation")] + public SharedVector3 fromDirection; + [Tooltip("The to rotation")] + public SharedVector3 toDirection; + [Tooltip("The stored result")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.FromToRotation(fromDirection.Value, toDirection.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + fromDirection = toDirection = Vector3.zero; + storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs.meta new file mode 100644 index 00000000..d5836cfa --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/FromToRotation.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56740b2c218d500408dd75c6c15006ec +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs new file mode 100644 index 00000000..5c8c104a --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs @@ -0,0 +1,24 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the quaternion identity.")] + public class Identity : Action + { + [Tooltip("The identity")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.identity; + return TaskStatus.Success; + } + + public override void OnReset() + { + storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs.meta new file mode 100644 index 00000000..e8968d73 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Identity.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4eefb6e25898904688a422ca79d763c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs new file mode 100644 index 00000000..e0085ded --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs @@ -0,0 +1,26 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the inverse of the specified quaternion.")] + public class Inverse : Action + { + [Tooltip("The target quaternion")] + public SharedQuaternion targetQuaternion; + [Tooltip("The stored quaternion")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Inverse(targetQuaternion.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + targetQuaternion = storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs.meta new file mode 100644 index 00000000..e255f8bf --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Inverse.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab8f5048bc0e5ce409bf3408c60bc3eb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs new file mode 100644 index 00000000..faea9019 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Lerps between two quaternions.")] + public class Lerp : Action + { + [Tooltip("The from rotation")] + public SharedQuaternion fromQuaternion; + [Tooltip("The to rotation")] + public SharedQuaternion toQuaternion; + [Tooltip("The amount to lerp")] + public SharedFloat amount; + [Tooltip("The stored result")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Lerp(fromQuaternion.Value, toQuaternion.Value, amount.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + fromQuaternion = toQuaternion = storeResult = Quaternion.identity; + amount = 0; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs.meta new file mode 100644 index 00000000..4711a2b8 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Lerp.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb19d83a245337542a5c0f02593e8dab +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs new file mode 100644 index 00000000..8e8bf5ab --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the quaternion of a forward vector.")] + public class LookRotation : Action + { + [Tooltip("The forward vector")] + public SharedVector3 forwardVector; + [Tooltip("The second Vector3")] + public SharedVector3 secondVector3; + [Tooltip("The stored quaternion")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.LookRotation(forwardVector.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + forwardVector = Vector3.zero; + storeResult = Quaternion.identity; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs.meta new file mode 100644 index 00000000..b58cb08b --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/LookRotation.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e006fb91f87854448b9bd6cb1d20b2f1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs new file mode 100644 index 00000000..77975891 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Stores the quaternion after a rotation.")] + public class RotateTowards : Action + { + [Tooltip("The from rotation")] + public SharedQuaternion fromQuaternion; + [Tooltip("The to rotation")] + public SharedQuaternion toQuaternion; + [Tooltip("The maximum degrees delta")] + public SharedFloat maxDeltaDegrees; + [Tooltip("The stored result")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.RotateTowards(fromQuaternion.Value, toQuaternion.Value, maxDeltaDegrees.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + fromQuaternion = toQuaternion = storeResult = Quaternion.identity; + maxDeltaDegrees = 0; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs.meta new file mode 100644 index 00000000..4a037c77 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/RotateTowards.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b5e043a106ab4784aab997fa0e27f972 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs new file mode 100644 index 00000000..88cac7e6 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityQuaternion +{ + [TaskCategory("Basic/Quaternion")] + [TaskDescription("Spherically lerp between two quaternions.")] + public class Slerp : Action + { + [Tooltip("The from rotation")] + public SharedQuaternion fromQuaternion; + [Tooltip("The to rotation")] + public SharedQuaternion toQuaternion; + [Tooltip("The amount to lerp")] + public SharedFloat amount; + [Tooltip("The stored result")] + [RequiredField] + public SharedQuaternion storeResult; + + public override TaskStatus OnUpdate() + { + storeResult.Value = Quaternion.Slerp(fromQuaternion.Value, toQuaternion.Value, amount.Value); + return TaskStatus.Success; + } + + public override void OnReset() + { + fromQuaternion = toQuaternion = storeResult = Quaternion.identity; + amount = 0; + } + } +} \ No newline at end of file diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs.meta b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs.meta new file mode 100644 index 00000000..6e1d7577 --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/Quaternion/Slerp.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b36eacb0f1a46624193a622ef50979ff +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: -- cgit v1.1-26-g67d0