Files
2026-03-04 10:03:45 +08:00

48 lines
1.1 KiB
C#

using UnityEngine;
namespace RootMotion.Demos
{
public class UserControlAI : UserControlThirdPerson
{
public Transform moveTarget;
public float stoppingDistance = 0.5f;
public float stoppingThreshold = 1.5f;
public Navigator navigator;
protected override void Start()
{
base.Start();
navigator.Initiate(base.transform);
}
protected override void Update()
{
float num = (walkByDefault ? 0.5f : 1f);
if (navigator.activeTargetSeeking)
{
navigator.Update(moveTarget.position);
state.move = navigator.normalizedDeltaPosition * num;
return;
}
Vector3 tangent = moveTarget.position - base.transform.position;
float magnitude = tangent.magnitude;
Vector3 normal = base.transform.up;
Vector3.OrthoNormalize(ref normal, ref tangent);
float num2 = ((state.move != Vector3.zero) ? stoppingDistance : (stoppingDistance * stoppingThreshold));
state.move = ((magnitude > num2) ? (tangent * num) : Vector3.zero);
state.lookPos = moveTarget.position;
}
private void OnDrawGizmos()
{
if (navigator.activeTargetSeeking)
{
navigator.Visualize();
}
}
}
}