summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-03-10 14:07:40 +0800
committerchai <chaifix@163.com>2022-03-10 14:07:40 +0800
commit22891bf59032ba88262824255a706d652031384b (patch)
tree7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs
parent8b04ea73e540067f83870b61d89db4868fea5e8a (diff)
* move folder
Diffstat (limited to 'Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs')
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs66
1 files changed, 0 insertions, 66 deletions
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs
deleted file mode 100644
index cee67ccb..00000000
--- a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Transform/GetAngleToTarget.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using UnityEngine;
-
-namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityTransform
-{
- [TaskCategory("Basic/Transform")]
- [TaskDescription("Gets the Angle between a GameObject's forward direction and a target. Returns Success.")]
- public class GetAngleToTarget : Action
- {
- [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
- public SharedGameObject targetGameObject;
- [Tooltip("The target object to measure the angle to. If null the targetPosition will be used.")]
- public SharedGameObject targetObject;
- [Tooltip("The world position to measure an angle to. If the targetObject is also not null, this value is used as an offset from that object's position.")]
- public SharedVector3 targetPosition;
- [Tooltip("Ignore height differences when calculating the angle?")]
- public SharedBool ignoreHeight = true;
- [Tooltip("The angle to the target")]
- [RequiredField]
- public SharedFloat storeValue;
-
- private Transform targetTransform;
- private GameObject prevGameObject;
-
- public override void OnStart()
- {
- var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
- if (currentGameObject != prevGameObject) {
- targetTransform = currentGameObject.GetComponent<Transform>();
- prevGameObject = currentGameObject;
- }
- }
-
- public override TaskStatus OnUpdate()
- {
- if (targetTransform == null) {
- Debug.LogWarning("Transform is null");
- return TaskStatus.Failure;
- }
-
- Vector3 targetPos;
- if (targetObject.Value != null) {
- targetPos = targetObject.Value.transform.InverseTransformPoint(targetPosition.Value);
- } else {
- targetPos = targetPosition.Value;
- }
-
- if (ignoreHeight.Value) {
- targetPos.y = targetTransform.position.y;
- }
-
- var targetDir = targetPos - targetTransform.position;
- storeValue.Value = Vector3.Angle(targetDir, targetTransform.forward);
-
- return TaskStatus.Success;
- }
-
- public override void OnReset()
- {
- targetGameObject = null;
- targetObject = null;
- targetPosition = Vector3.zero;
- ignoreHeight = true;
- storeValue = 0;
- }
- }
-} \ No newline at end of file