Version: 2017.2
다수의 움직이는 부분이 있는 오브젝트
애니메이터 컨트롤러

애니메이션 이벤트 사용(Using Animation Events)

애니메이션 이벤트를 사용하여 애니메이션 클립을 최대한 활용할 수 있으며, 타임라인의 특정 시간에 오브젝트의 스크립트에 포함된 함수를 호출할 수 있습니다.

애니메이션 이벤트로 호출된 함수는 옵션으로 파라미터를 한 개 추가할 수도 있습니다. 파라미터는 float, string, int, object 레퍼런스, 또는 AnimationEvent 오브젝트입니다. AnimationEvent 오브젝트는 멤버 변수를 가지고 플로트, 문자열, 정수와 오브젝트 참조를 함수로 한꺼번에 전달될 수 있도록 하며 또한 함수 호출을 트리거한 이벤트에 대한 정보와 함께 전달됩니다.

// This C# function can be called by an Animation Event
public void PrintFloat (float theValue) {
    Debug.Log ("PrintFloat is called with a value of " + theValue);
}

클립에서 현재 재생 헤드 위치에 애니메이션 이벤트를 추가하려면 Event 버튼을 클릭합니다. 애니메이션 중에 애니메이션 이벤트를 추가하려면 이벤트가 발생하기 원하는 지점에서 Event 라인을 더블 클릭합니다. 추가한 이후에는 마우스 드래그로 이벤트의 포지션을 바꿀 수 있습니다. 이벤트를 삭제하려면 삭제할 이벤트를 선택한 다음 Delete 키를 누르거나 오른쪽 클릭 후 Delete Event 를 선택합니다.

Event Line 에 Animation Events 가 표시됩니다. Event Line 을 더블 클릭하거나 Event 버튼 으로 새로운 Animation Event 를 추가합니다.
Event LineAnimation Events 가 표시됩니다. Event Line 을 더블 클릭하거나 Event 버튼 으로 새로운 Animation Event 를 추가합니다.

이벤트를 추가할 때, 인스펙터 창에는 여러 필드가 표시됩니다. 이 필드에서 호출하려는 함수의 이름과 전달하려는 파라미터의 값을 지정할 수 있습니다.

Animation Event 인스펙터 창
Animation Event 인스펙터 창

클립에 추가된 이벤트는 이벤트 라인에서 마커로 표시됩니다. 마커 위에 마우스를 올려놓으면 함수 이름과 파라미터 값이 툴팁으로 표시됩니다.

타임라인에서 여러 이벤트를 선택하고 조절할 수 있습니다.

타임라인에서 여러 이벤트를 선택하려면 Shift 키를 누른 상태로 이벤트 마커를 하나씩 선택합니다. 선택 박스를 드래그할 수도 있습니다. 아래와 같이 이벤트 마커 영역에서 클릭하여 드래그합니다.

예제

이 예제는 단순한 게임 오브젝트에 애니메이션 이벤트를 추가하는 방법을 보여줍니다. 모든 단계를 따라하면 플레이 모드에서 큐브가 x축을 따라 앞뒤로 애니메이션화되며, 콘솔에 1초마다 0.8초에 이벤트 메시지가 표시됩니다.

이 예제에는 PrintEvent() 함수가 들어간 작은 스크립트가 필요합니다. 이 함수는 문자열(“called at:”)과 시간이 포함된 디버그 메시지를 출력합니다.

// This C# function can be called by an Animation Event
using UnityEngine;
using System.Collections;


public class ExampleClass : MonoBehaviour {
    public void PrintEvent(string s) {
        Debug.Log("PrintEvent: " + s + " called at: " + Time.time);
    }
}

이 예제 코드로 스크립트 파일을 생성하고 Project 폴더에 넣습니다(Unity의 프로젝트 창에서 오른쪽 클릭하고 Create > C# Script 를 선택한 후, 위의 예제 코드를 파일에 복사, 붙여넣기하고 저장합니다).

Unity에서 큐브 게임 오브젝트를 생성합니다(메뉴: GameObject > 3D Object > Cube). 새 스크립트 파일을 추가하려면 프로젝트 창에서 인스펙터 창으로 드래그합니다.

큐브를 선택하고 애니메이션 창을 엽니다(메뉴: Window > Animation). x 좌표의 Position 커브를 설정합니다.

애니메이션 창
애니메이션 창

그런 다음 x 좌표의 애니메이션을 0.4 정도 높이고 1초 후 0으로 바꾼 뒤, 약 0.8초에 애니메이션 이벤트를 생성합니다. 플레이를 눌러 애니메이션을 실행합니다.

다수의 움직이는 부분이 있는 오브젝트
애니메이터 컨트롤러