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();
|
}
|
}
|
}
|