# KeyFrame Animation 필요 이유
애니메이터가 제작하는 애니메이션 말고
위치나 회전과 같은 컴포넌트를 활용하여
애니메이션을 직접 제작해 사용해야 하는 경우에 사용된다
ex.
나무를 패면 부서진 나무들이 튀면서 떨어지는 애니메이션
, 특정한 이동 패턴으로 도는 새
, TCG 장르에서 카드가 이동 및 회전하는 경우
# KeyFrame Animation 생성법
1. Animation 창 켜기
Window > Animation > Animation (단축키는 Ctrl + 6)
2. Hierarchy 창에서 객체를 선택한 후 Animation 창에서 Create 버튼 클릭
Create를 클릭하면, Animation 파일과 StateMachine(AnimatiorController) 파일이 생성된다
그리고 선택된 객체에 Animator Component는 자동 추가된다
# KeyFrame Animation 사용법
Hierarchy 창에서 객체를 선택한 상태여야 Animation 파일 수정이 가능하다

- Event와 Key
첫 번째 줄은 Event (1), 두 번째 줄은 Key (2) 관련 생성 및 설정 가능
- Add Event 방법
첫 번째 줄 우클릭 혹은 (3) 클릭을 통해 추가 가능하다
- Add Key 방법
두 번째 줄 우클릭,
더블클릭,
“좌우로 늘어진 O (4)”클릭 (특정 값만 변경 가능한 Key 생성) 등을 통해 추가 가능하다
- Curves (5)
보정되는 수치는 Curves를 통해 변경 가능하다
- ◉ 녹화버튼 (6)
직접 Key를 생성해서 값을 하나하나 입력할 수도 있지만
좀 더 쉽게 녹화버튼을 통해
원하는 지점에서 위치, 회전, 스케일링 등을 Scene 창에서 조절해
쉽게 Key를 생성해 KeyFrame Animation을 만들 수 있다
# Animation Event Interface
Event 생성 시, Interface가 다르기에 주의해야 한다
만약, Hierarchy 창에서 객체 클릭을 해놓지 않은 상태에서 Event를 생성
→ Event Function 직접 Name 작성 가능
만약, Hierarchy 창에서 객체 클릭을 해놓은 상태에서 Event를 생성
→ Event Function을 리스트에서 선택해야 함
2019.4.40f1 버전 기준으로는
Event Function을 리스트에서 선택하는 Interface만 제공되는 것으로 확인되기에
크게 문제가 되지 않는다
# 콜백함수 코드 구현
Animation Event를 생성했다면
콜백함수를 바인드를 해주어야 한다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AnimationEventTest : MonoBehaviour
{
void Start()
{
}
void Update()
{
}
public void TestEvent()
{
Debug.Log($"Event is called");
}
public void TestEvent2(int a)
{
Debug.Log($"Event is called {a}");
}
}
해당 함수는 접근지정자는 상관없으며
해당 KeyFrame Animation이 작동되는 오브젝트의
C# 클래스 Component 중 하나에서 구현을 하면
툴에서 선택 가능하다

# 애니메이션 에셋에서 Event 생성 및 활용법
원하는 애니메이션 에셋에 들어가서
아래와 같이 Events 탭을 펼쳐서
“0+”로 Add Event 및 수정이 가능하다

# 콜백함수 인자 사용법 및 주의점
툴에서 인자를 보내고 코드에서 활용 가능하다
주의점으로는
오버로딩 하더라도 버전은 상위버전 단 하나만 사용 가능하다
public void TestEvent()
{
Debug.Log($"Event is called");
}
public void TestEvent2(int a) // 오버로딩 지원X, 가장 상위 버전 실행
{
Debug.Log($"Event is called {a}");
}
public void TestEvent2(string str)
{
Debug.Log($"Event is called {str}");
}

'게임 엔진 - 유니티 > [루키스] 유니티' 카테고리의 다른 글
| [유니티 Note] 섹션 8-2 (3) | 2025.07.07 |
|---|---|
| [유니티 Note] 섹션 8-1 (0) | 2025.07.07 |
| [유니티 Note] 섹션 7-2 (0) | 2025.07.05 |
| [유니티 Note] 섹션 7-1 (0) | 2025.07.05 |
| [유니티 Note] 섹션 6-3 (0) | 2025.07.02 |