示例#1
0
 /// <summary>
 /// 結束腳色施法動作後呼叫
 /// </summary>
 public void EndSpell()
 {
     SetDefaultTransfrom();
     FightScene.SetAction(false);//設定結束動作
 }
示例#2
0
    /// <summary>
    /// 播放腳色施法
    /// </summary>
    public void PlayMotion(Motion _motion, float _normalizedTime)
    {
        switch (_motion)
        {
        case Motion.Stay:
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.Stay.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.SetTrigger(Motion.Stay.ToString());
            }
            break;

        case Motion.GoForward:
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.GoForward.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.Play(Motion.GoForward.ToString(), 0, _normalizedTime);
            }
            break;

        case Motion.Attack:
            Ani_Chara.SetBool("InFighting", FightScene.Fight);
            FightScene.SetAction(true);    //設定有人在執行動作
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.Attack.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.Play(Motion.Attack.ToString(), 0, _normalizedTime);
            }
            else
            {
                //重播
                Ani_Chara.StopPlayback();
            }
            break;

        case Motion.Beaten:
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.Beaten.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.Play(Motion.Beaten.ToString(), 0, _normalizedTime);
            }
            else
            {
                //重播
                Ani_Chara.StopPlayback();
            }
            break;

        case Motion.Support:
            FightScene.SetAction(true);    //設定有人在執行動作
            Ani_Chara.SetBool("InFighting", FightScene.Fight);
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.Support.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.Play(Motion.Support.ToString(), 0, _normalizedTime);
            }
            else
            {
                //重播
                Ani_Chara.StopPlayback();
            }
            break;

        case Motion.Die:
            if (Animator.StringToHash(string.Format("Base Layer.{0}", Motion.Die.ToString())) != Ani_Chara.GetCurrentAnimatorStateInfo(0).fullPathHash)
            {
                Ani_Chara.Play(Motion.Die.ToString(), 0, _normalizedTime);
            }
            break;
        }
    }