using UnityEngine; public class GuardIdle : SMB_Base { private float idleTime = 0; private float m_Time = 0; protected override void OnEnter(GActor owner, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnEnter(owner, animator, stateInfo, layerIndex); GA_Guard guard = owner as GA_Guard; if (guard == null) { return; } m_Time = 0; idleTime = UnityEngine.Random.Range(guard.GuardianRandomIdleMin, guard.GuardianRandomIdleMax); } protected override void OnExit(GActor owner, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnExit(owner, animator, stateInfo, layerIndex); } protected override void OnUpdate(GActor owner, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnUpdate(owner, animator, stateInfo, layerIndex); GA_Guard guard = owner as GA_Guard; if (guard == null || guard.targetPlayer == null || guard.targetPlayer.Root == null) return; guard.Root.LookAt(guard.targetPlayer.Root.position.SetY(guard.Root.position.y)); m_Time += Time.deltaTime; if (m_Time > idleTime) { m_Time = 0; guard.Dance(); } } }