[Unity/C#] 버튼 여러 번 클릭시 해당 animation 두 번 실행 버그

2023. 6. 16. 07:51·Unity

문제 상황 영상

상황 및 발생한 버그 설명

우선 이 게임은 하단의 버튼 UI(영상에는 안 넣었다.)를 누르면 발판을 한 칸씩 올라가는 방식이다.

따라서 다음 블럭 색과 같은 색의 버튼을 누르면 (한 칸씩 올라가며) 애니메이션이 발동 되도록 했다.

애니메이션을 발동시킬 때는 animator의 trigger를 사용하여 다음과 같은 코드를 사용했다.

animator.SetTrigger("ClimbTrigger");

애니메이션은 잘 적용 되었으나....문제는 버튼을 빠르게 연달아 누르면 상단의 문제 영상과 같이 애니메이션이 두 번 발동되는 것이다. (천천히 올라가면 문제가 발생하지 않았다.) 정말 몇 번 연속 빠르게 올라가든 항상 두 번씩만 반복 재생되었다.

 

따라서 이를 해결하기 위해

  • animator.ResetTrigger(”ClimbTrigger”)
  • animator.StopPlayback()
  • enable 비활성화/활성화
  • bool형의 추가 파라미터 적용

등의 방법을 써봤지만 뭐가 문제인지 정말 하나도 먹히지 않았다.......

 

그나마 아래와 같은 코드를 쓰니까 기존의 버그는 해결됐다!

// 기본 애니메이션의 이름이 rest였다.
// 현재 애니메이션 상태가 rest라면 ClimbTrigger를 작동시키는 것
if (animator.GetCurrentAnimatorStateInfo(0).IsName("rest"))
	animator.SetTrigger("ClimbTrigger");

근데 이렇게 하니까 버튼을 빠르게 여러 번 누르면 제일 처음 작동됐던 애니메이션이 쭉 이어져서 작동되는 바람에....이 방법도 기각했다.

 

그래서 결국에는 climb 애니메이션에 있던 trigger를 지우고, trigger를 통해 애니메이션을 작동시키는 방법 대신 다음과 같은 코드를 통해 작동시켰다.

animator.Play("climb");

이렇게 하면 특정 타이밍에서 애니메이션이 살짝 제대로 작동되지 않는 것 같긴 한데, 우선 어느정도 버그는 해결되었으니 이 정도에서 만족하기로 했다... 나중에 시간이 많을 때 다시 한 번 연구해봐야겠다.

 

최종 해결한 후의 영상(Play()사용)


아직은 유니티를 공부하는 중이라 제가 틀린 것이 있을 수도 있습니다.

잘못된 것이 있다면 언제든지 댓글로 알려주세요 :D

'Unity' 카테고리의 다른 글

[Unity/C#] UI 위치가 원하는 대로 변경되지 않던 문제  (0) 2023.06.18
'Unity' 카테고리의 다른 글
  • [Unity/C#] UI 위치가 원하는 대로 변경되지 않던 문제
김왈왈이
김왈왈이
  • 김왈왈이
    저장소
    김왈왈이
  • 전체
    오늘
    어제
  • 링크

    • GitHub
    • 분류 전체보기 (40)
      • TIL (1)
      • Spring (5)
      • Andriod (4)
      • Unity (2)
      • Java (1)
      • C++ (0)
      • HTML CSS JavaScript (1)
      • 프로젝트 (11)
      • 코딩테스트 (11)
      • 기타 (4)
  • 최근 글

  • 태그

    [Serializable]
    c#
    Unity
    html
    에러
    그리디 알고리즘
    Quaternion.Euler()
    오류
    구현
    유니티
    단축키
    하위오브젝트반환
    게임프로토타입
    수학
    백준
    경합상태오류
    UnassignedReferenceException
    브루트포스 알고리즘
    springboot
    프로토타입
    silver iv
    자료구조
    개발
    C++
    silver v
    게임개발
    게임
    유니티게임
    java
    공격구현
  • hELLO· Designed By정상우.v4.10.4
김왈왈이
[Unity/C#] 버튼 여러 번 클릭시 해당 animation 두 번 실행 버그
상단으로

티스토리툴바