diff options
Diffstat (limited to 'Client/Assets/Behavior Designer/Runtime/Basic Tasks/CharacterController/GetCenter.cs')
| -rw-r--r-- | Client/Assets/Behavior Designer/Runtime/Basic Tasks/CharacterController/GetCenter.cs | 45 | 
1 files changed, 45 insertions, 0 deletions
| diff --git a/Client/Assets/Behavior Designer/Runtime/Basic Tasks/CharacterController/GetCenter.cs b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/CharacterController/GetCenter.cs new file mode 100644 index 00000000..a05eb82a --- /dev/null +++ b/Client/Assets/Behavior Designer/Runtime/Basic Tasks/CharacterController/GetCenter.cs @@ -0,0 +1,45 @@ +using UnityEngine;
 +
 +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityCharacterController
 +{
 +    [TaskCategory("Basic/CharacterController")]
 +    [TaskDescription("Stores the center of the CharacterController. Returns Success.")]
 +    public class GetCenter : Action
 +    {
 +        [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
 +        public SharedGameObject targetGameObject;
 +        [Tooltip("The center of the CharacterController")]
 +        [RequiredField]
 +        public SharedVector3 storeValue;
 +
 +        private CharacterController characterController;
 +        private GameObject prevGameObject;
 +
 +        public override void OnStart()
 +        {
 +            var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
 +            if (currentGameObject != prevGameObject) {
 +                characterController = currentGameObject.GetComponent<CharacterController>();
 +                prevGameObject = currentGameObject;
 +            }
 +        }
 +
 +        public override TaskStatus OnUpdate()
 +        {
 +            if (characterController == null) {
 +                Debug.LogWarning("CharacterController is null");
 +                return TaskStatus.Failure;
 +            }
 +
 +            storeValue.Value = characterController.center;
 +
 +            return TaskStatus.Success;
 +        }
 +
 +        public override void OnReset()
 +        {
 +            targetGameObject = null;
 +            storeValue = Vector3.zero;
 +        }
 +    }
 +}
\ No newline at end of file | 
