Lerp.cs 951 B

12345678910111213141516171819202122232425262728293031
  1. using UnityEngine;
  2. namespace BehaviorDesigner.Runtime.Tasks.Unity.UnityQuaternion
  3. {
  4. [TaskCategory("Unity/Quaternion")]
  5. [TaskDescription("Lerps between two quaternions.")]
  6. public class Lerp : Action
  7. {
  8. [Tooltip("The from rotation")]
  9. public SharedQuaternion fromQuaternion;
  10. [Tooltip("The to rotation")]
  11. public SharedQuaternion toQuaternion;
  12. [Tooltip("The amount to lerp")]
  13. public SharedFloat amount;
  14. [Tooltip("The stored result")]
  15. [RequiredField]
  16. public SharedQuaternion storeResult;
  17. public override TaskStatus OnUpdate()
  18. {
  19. storeResult.Value = Quaternion.Lerp(fromQuaternion.Value, toQuaternion.Value, amount.Value);
  20. return TaskStatus.Success;
  21. }
  22. public override void OnReset()
  23. {
  24. fromQuaternion = toQuaternion = storeResult = Quaternion.identity;
  25. amount = 0;
  26. }
  27. }
  28. }