58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
using Game;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public enum E_ONCEATTACK_STEP
|
|
{
|
|
None,
|
|
InAttack,
|
|
InAttackCanToNext
|
|
}
|
|
|
|
public class anime_OnceAttack : StateMachineBehaviour
|
|
{
|
|
public float CanSkipTime = 0.8f;
|
|
public bool SendCanToNext = false;
|
|
public long RoleID = 0;
|
|
public int NodeType = 0;
|
|
|
|
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
|
|
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
NodeType = animator.GetInteger("NodeType");
|
|
RoleID = animator.GetInteger("RoleID");
|
|
SendCanToNext = false;
|
|
|
|
AppEntry.Event.Fire(null, MainPlayerOnceAttackEventArgs.Create(RoleID,(E_NODE_TYPE)NodeType, E_ONCEATTACK_STEP.InAttack));
|
|
}
|
|
|
|
// OnState}Update is called on each Update frame between OnStateEnter and OnStateExit callbacks
|
|
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
if (!SendCanToNext && stateInfo.normalizedTime > 0.8f)
|
|
{
|
|
SendCanToNext = true;
|
|
AppEntry.Event.Fire(null, MainPlayerOnceAttackEventArgs.Create(RoleID, (E_NODE_TYPE)NodeType, E_ONCEATTACK_STEP.InAttackCanToNext));
|
|
}
|
|
}
|
|
|
|
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
|
|
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
AppEntry.Event.Fire(null, MainPlayerOnceAttackEventArgs.Create(RoleID, (E_NODE_TYPE)NodeType, E_ONCEATTACK_STEP.None));
|
|
}
|
|
|
|
// OnStateMove is called right after Animator.OnAnimatorMove()
|
|
//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
//{
|
|
// // Implement code that processes and affects root motion
|
|
//}
|
|
|
|
// OnStateIK is called right after Animator.OnAnimatorIK()
|
|
//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
//{
|
|
// // Implement code that sets up animation IK (inverse kinematics)
|
|
//}
|
|
}
|