using UnityEngine;
namespace HotUpdate.Gameplay
{
/// Plays Idle or Walk on the camp guide from how far the root moved.
public sealed class ExplorerLocomotion : MonoBehaviour
{
Animator _animator;
Vector3 _last;
void Awake()
{
_animator = GetComponentInChildren();
if (_animator != null) _animator.applyRootMotion = false;
_last = transform.position;
}
void LateUpdate()
{
if (_animator == null) return;
Vector3 delta = transform.position - _last;
_last = transform.position;
float speed = new Vector2(delta.x, delta.z).magnitude / Mathf.Max(Time.deltaTime, 0.0001f);
_animator.SetInteger("Motion", speed > 0.04f ? 1 : 0);
}
}
}