Unity 애니메이션: Unity 상태기 Animator 가축 애니메이션을 해결합니다.

1558 단어 Unity 관련
컨디셔닝 머신의 기초 지식. 여기 어떤 형이 굉장히 잘하시더라고요.https://blog.csdn.net/qq_34134078/article/details/53092653
사실은 매우 간단하다. 논리적으로 상태기를 리셋하면 코드를 볼 수 있다.
private float v = 0;
private float h = 0;
private Animator m_Animator;

void Start () 
{    
     m_Animator = getComponent();     
     //       
     v = Input.GetAxisRaw("Vertical");
     if (v != 0)
         return;
     h = Input.GetAxisRaw("Horizontal");
     if (h != 0)
         return;
}
        
private void FixedUpdate()
{
            if (h != 0)
                m_Animator.SetFloat("Blend", 0);
            if (v != 0)
                m_Animator.SetFloat("DirY", 0);
            h = Input.GetAxisRaw("Horizontal");
            transform.Translate(Vector2.right * h * moveSpeed * Time.fixedDeltaTime, Space.World);
            if (h > 0)
            {
                m_Animator.SetFloat("DirX", dir * h);
            }
            else if (h < 0)
            {
                m_Animator.SetFloat("DirX", dir * h);
            }
            v = Input.GetAxisRaw("Vertical");
            transform.Translate(Vector2.up * v * moveSpeed * Time.fixedDeltaTime, Space.World);
            if (v > 0)
            {
                m_Animator.SetFloat("DirY", dir * v);
            }
            else if (v < 0)
            {
                m_Animator.SetFloat("DirY", dir * v);
            }

}

사실 중간에서 H!=0 직접 리턴;그러나 그러면 조작할 때 항상 불쾌한 느낌이 들기 때문에 여러분들이 직접 시험해 보셔도 됩니다.

좋은 웹페이지 즐겨찾기