애니메이션 이벤트를 사용하여 특정 시점에 함수를 호출합니다. 이 함수는 게임 오브젝트에 연결된 모든 스크립트에서 사용할 수 있지만, float, int, string, object 레퍼런스 또는 AnimationEvent 오브젝트 유형의 단일 파라미터만 허용해야 합니다.
예를 들어 다음 스크립트는 문자열을 받습니다. 이는 호출될 때 문자열 파라미터의 시간과 값을 기록합니다.
// An example of C# function that can be called by an Animation Event
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public void PrintEvent(string s)
{
Debug.Log("PrintEvent called at " + Time.time + " with a value of " + s);
}
}
현재 재생 헤드 위치의 클립에 애니메이션 이벤트를 추가하려면 Event 버튼을 클릭합니다. 모든 위치에 애니메이션 이벤트를 추가하려면 이벤트를 추가할 Event 행을 오른쪽 클릭하고 컨텍스트 메뉴에서 Add Animation Event를 선택합니다. 추가되면 애니메이션 이벤트를 클릭하고 드래그하여 이벤트 라인에서 위치를 변경합니다.
이벤트를 추가하면 인스펙터 창에 Function 필드가 표시됩니다. 이 필드를 사용하여 호출할 메서드를 선택합니다. 애니메이션 이벤트는 단일 파라미터가 있는 메서드만 지원합니다. 두 개 이상의 파라미터를 허용하는 함수를 선택할 수 없습니다.
그러나 AnimationEvent 오브젝트를 사용하여 여러 파라미터를 동시에 전달할 수 있습니다. AnimationEvent 오브젝트는 멤버 값으로 float, int, string, object 레퍼런스를 받습니다. 또한 AnimationEvent 오브젝트는 함수를 호출하는 애니메이션 이벤트에 대한 정보를 제공합니다.
PrintEvent 메서드는 ExampleClass에서 선택됩니다.클립에 추가된 이벤트는 이벤트 라인에서 마커로 표시됩니다. 마커 위로 커서를 가져가면 함수 이름과 파라미터 값이 포함된 툴팁이 표시됩니다.
이벤트 라인에서 여러 이벤트를 선택하고 조작할 수 있습니다. 이벤트 라인에서 여러 이벤트를 선택하려면 Shift 키를 누른 상태에서 각 이벤트 마커를 하나씩 클릭합니다. 선택 항목에서 마커를 제거하려면 Shift 키를 누른 상태에서 선택한 마커를 클릭합니다.
선택 상자를 사용하여 여러 애니메이션 이벤트를 선택할 수도 있습니다. 이렇게 하려면 이벤트 라인 안에서 클릭하고 드래그합니다.
애니메이션 이벤트를 삭제하려면 애니메이션 이벤트를 선택하고 Delete 키를 누릅니다. 애니메이션 이벤트를 오른쪽 클릭하고 컨텍스트 메뉴에서 Delete Event를 선택할 수도 있습니다.