공부 기록

[Unity] 유니티 애니메이션 실행 중 특정 함수, 이벤트 실행하기 본문

Unity

[Unity] 유니티 애니메이션 실행 중 특정 함수, 이벤트 실행하기

혜멘 2021. 2. 20. 01:03

#1 Animation - add event

 

애니메이션 설정창에서 add event(왼쪽 동그라미 친 부분)를 누르면 애니메이션 도중 실행할 함수를 지정할 수 있다.

참고로 함수가 실행될 타이밍은 애니메이션 만들었던 것처럼 지정할 수 있다 (오른쪽 동그라미 참고)

 

나는 애니메이션이 종료될때 함수를 실행시키고 싶어서 맨 끝에 위치시켰다.

 

#2 Animation event - 함수 실행 방법

 

위에서 추가했던 이벤트 바를 눌러보면 이런 창이 뜬다.

 

off는 내가 실행시킬 함수 이름이다.

 

여기서 function은 말그대로 실행할 함수 이름을 적으면 된다 (클래스/스크립트이름 X)

그 아래 int, float 등등은 함수에 파라미터로 넘겨줄 값 혹은 오브젝트를 지정해주는 칸이다.

 

 

참고할 사항은 해당 애니메이션의 애니메이터가 붙어있는 게임오브젝트에 추가되어있는 스크립트에 속한 함수만 실행할 수 있다는 점이다.

(ex. A오브젝트에 붙어있는 애니메이터라면 A오브젝트에 추가되어있는 B스크립트 안에 off 함수가 속해있어야 실행 가능함)

 

그리고 같은 애니메이터가 여러 오브젝트에 속해있더라도 각 애니메이션이 속한 오브젝트에만 영향을 미친다. 

 

나는 애니메이션이 실행되고나면 해당 오브젝트를 비활성화 하고싶어서 gameobject.SetActive(false); 만 포함하는 함수 이름을 적어넣었는데, 실행이 아주 잘 되었다. 각기 다른 타이밍에 활성화하고나면 애니메이션이 끝날때 알아서 비활성화된다!

 

 

Comments