인프런 커뮤니티 질문&답변

임지형님의 프로필 이미지

작성한 질문수

유니티 게임 개발 (Unity 2D) - 시작부터 배포까지

애니메이션 트리거와 불

18.04.01 22:58 작성

·

170

0

  1. Settrigger를 사용해 좌우 화살표로 걷는 캐릭터 애니메이션을 구현했습니다. 대기상태-걷기 애니메이션 전환이 자연스럽게 진행되지만 키 코드를 계속 입력하고 있을 때, 1프레임정도가 순간적으로 대기상태로 돌아갔다가 다시 걷기 애니메이션으로 돌아옵니다.

    '''

    void Update () {

    if (Input.GetKey(KeyCode.RightArrow))

    {

    // 걷기 애니메이션 트리거

    GetComponent().Settrigger("walk_t", true);

    // 오른쪽으로 이동

    gameObject.transform.Translate(Vector3.right * 0.05f);

    // 오른쪽을 보고있는 캐릭터를 반대로 뒤집지 않음

    GetComponent().flipX = false;

    }

    }

    '''

  2. 고민 끝에 bool을 사용해 GetKeyDown시 true 상태로 만들고, 아닐경우 false로 만들어서 애니메이션을 재생하도록 시도해보았습니다.

    '''

    void Start () {

    if (Input.GetKey(KeyCode.RightArrow))

    {

    // 걷기 애니메이션 불 온

    GetComponent().SetBool("walk_bool_right", true);

    // 오른쪽으로 이동

    gameObject.transform.Translate(Vector3.right * 0.05f);

    // 오른쪽을 보고있는 캐릭터를 반대로 뒤집지 않음

    GetComponent().flipX = false;

    }

    else

    {

    // 아닐경우 불 오프

    GetComponent().SetBool("walk_bool_right", false);

    }

    }

    '''

    이렇게 했을 때 한쪽 방향으로 이동은 정상적으로 작동하는 것을 확인했지만, 반대 방향으로 똑같이 새로운 bool 값을 만들어서 넣어줬지만 걷기 애니메이션으로 넘어가지 않았습니다. 트리거나 불 어떤 방식이로든 그 이유를 알고 해결하고 싶습니다.

답변 1

0

스터디 인코딩님의 프로필 이미지
스터디 인코딩
지식공유자

2018. 04. 02. 18:04

글로 봐서는 Animator Controller 의 Transition이 잘못 설정되어있는것으로 보여집니다.

아래쪽 코드는 Start 함수에 작동 코드가 들어있는게 문제일 수 있습니다.

좀더 정확한 상황을 알기위해서 스크린 샷 등 자세한 설명을 부탁 드립니다.