유니티 메카님 애니메이션 이벤트 함수 호출 안 될때(Unity Mecanim animation event not working)
스파인2D에서 이벤트를 걸 때 맨 처음 프레임과 맨 끝 프레임에다가 이벤트를 걸었는데, 이게 유니티 메카님 애니메이션 트랜지션에 블렌딩을 .1f 초 정도 걸었는데 이 때 이벤트가 씹히는 것 같다.(뇌피셜) 그래서 몇프레임정도 앞뒤로 이동을 하니 정상동작을 한다.
희미한 기억으론 예전에는 이벤트에서 함수를 드롭다운으로 선택을 했던 것 같은데 이런식으로 파라미터를 넣을 수 있다. 바뀐건지, 둘 다 가능한 건지 헷갈린다. Function 에는 해당 애니메이션 컴포넌트가 부착된 게임오브젝트에 있는 스크립트 안의 함수중 public 함수중에 이름이 일치하는 함수를 호출한다. 만약에 public void Test() 와 public void Test(int _value) 등 같은이름의 함수가 있다면 모두 호출된다. 가장 아래쪽의 Object는 생긴 건 스크립트를 연결하라는 것 처럼 생겼지만 저것 역시 파라미터이다. Object타입의 매개변수가 없다면 None 으로 비워두면 된다.
한가지 더 안되는 이유를 찾았는데, 스파인2D에서 내보내기한 파일을 유니티에 적용했을 때 생성되는 Animator Controller에 관한 것이다. Animator창에서 State간의 관계를 모두 정의하고 나서
Inspector 창에서 해당 State에 등록된 Motion(Animation Clip)을 클릭해보면 아래와 같이 해당 클립으로 인식하지 않고 Animator Controller를 인식하는데
이렇게 두지 말고, Animator Controller 안에 있는 Animation Clip을 Inspector의 Motion 부분으로 직접 한 번 더 등록을 해주면 다음 번에 Motion(Animation Clip)을 클릭해보면 다음과 같이 해당 Animation Clip으로 인식하는 걸 볼 수 있다.
이렇게 하고 나서 다시 실행하면 이벤트가 정상적으로 잘 동작하는 걸 볼 수 있다.