버튼에 애니메이션을 실행(Play)시킬 때 발생하는 문제가 하나 있었다.
같은 버튼을 계속 누를 때 최초 1회만 애니메이션이 재생되고, 그 이후 두번 다시 Play되지 않은 문제였다.
그래서 틀렸을 때 흔들리는 애니메이션이 1번만 보여지고 그 이후는 무반응이므로 뭔가 어색하게 되었다.
오브젝트를 껐다가 켜야하나 생각도 해보고 구글을 찾아봤지만 한국어 검색으로는 비슷한 문제가 발견되지 않았다.
그래서 형편없는 영어 실력으로 영어 검색을 시작했다.
검색어 : unity animator play once reset
그결과 유니티 커뮤니티에서 어떤 한 외국인님이 나와 완전히 동일한 문제를 질문했고, 답을 얻을 수 있었다.
생각보다 별 것 아니었다. 몰라서 못 쓴 것이지만,,]
내가 사용했던 Play("AnimationName"); 에서 확장된...아니 오버로딩된
public void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity);
을 사용하라고 한다.
아래 코드가 내가 사용한 기본적인 코드이다. 이렇게 하면 플레이는 된다.
하지만,
첫 번째 매개변수 : stateName
두 번째 매개변수 : layer
세 번쨰 매개변수 :normalizedTime
첫 번쨰 매개변수로는 Play할 애니메이션 state의 이름을 적는다.
두 번째 매개변수로는 layer를 설정한다. -1일 경우 첫 state를 재생한다.
세 번째 매개변수로는 normalizedTime를 적는다.
normalizedTime란,
표준화된(normalized) 애니메이션 시간아다.
값 1은 애니메이션의 끝을 의미하며 값 0.5는 애니메이션의 중간을 의미한다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] 게임오브젝 널(null) 체크해서 에러나지 않게 하는 방법! (0) | 2018.04.19 |
---|---|
[유니티] 스크립트에서 머터리얼(Material) 한 개 또는 여러개 호출하는 방법... (0) | 2018.04.19 |
[유니티] 버튼 사운드 재생 시, 빠르게 연타할때 사운드 겹칠 때 해결 방법! (0) | 2018.04.16 |
[유니티] NGUI UIButton 비활성화할 때 색상 제거하는 방법! (0) | 2018.04.16 |
[유니티] 유니티에서 Inspector 창 닫히지 않게 잠그기! (0) | 2018.04.16 |