Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코테
- c++
- 플레이어 이동
- Algorithm
- Beakjoon
- 코딩테스트
- 2870번 c++
- 백준
- 2870번 수학숙제 c++
- 백준 1103번 c++
- 백준 c++ 2870번
- 백준 2870번
- 프로그래머스
- 2468 c++
- 백준 1103번 게임
- 17070번
- Lv2
- C#
- Unity
- 백준 c++ 2468번
- 수학숙제
- 백준 17070번 c++
- 백준 1103번
- 2870번
- 유니티
- 오브젝트 풀링
- 2870번 수학숙제
- 백준 17070번
- Lv.3
- dfs
Archives
- Today
- Total
주녘공부일지
[Unity] StateMachineBehaviour 본문
StateMachineBehaviour란?
AnimatorController의 컴포넌트로 붙일 수 있는 StateMachineBehaviour 스크립트
- Animator 상태 머신의 상태 변화에 따라 CallBack 함수를 실행해주는 방식
public class MoveAnim : StateMachineBehaviour
using UnityEngine;
public class MoveAnim : StateMachineBehaviour
{
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
// 애니메이션 실행 시 첫 프레임에 한번 호출
}
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
// 처음과 마지막 프레임을 제외한 각 프레임 단위로 호출
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
// 해당 애니메이션 스테이트를 나가기 직전 (마지막 프레임)에 한번 호출
}
public override void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
// MonoBehaviour.OnAnimatorMove 직후에 실행
}
public override void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
// MonoBehaviour.OnAnimatorIK 직후에 실행
}
}
실행 순서 : OnStateEnter -> OnStateUpdate,Move -> OnStateMove -> OnStateExit
MonoBehaviour.OnAnimatorMove
- Update 프레임마다 Animator 정보가 갱신될 시에 호출되는 이벤트 함수
MonoBehaviour.OnStateIK
- Update 프레임마다 IK 정보가 갱신될 시에 호출되는 이벤트 함수
+ 위 두 이벤트 함수는 애니메이터가 붙어있는 오브젝트만 호출 가능
MonoBehaviour를 상속받은 스크립트에서 접근하는 방법 간단 예제
private Animator _animator;
private StateMachineExample _stateMachineExample;
void Start()
{
_animator = GetComponent<Animator>();
_stateMachineExample = _animator.GetBehaviour<StateMachineExample>();
}
'GameDevelopment > [Unity] Class, Pattern' 카테고리의 다른 글
[Unity] MonoBehaviour Life Cycle (생명주기) (0) | 2023.09.05 |
---|---|
[Unity] Animation Blending (0) | 2022.03.23 |
[Unity3D] Camera (0) | 2022.03.01 |
[Unity3D] Physics.Raycast (+LayerMask) (0) | 2022.02.24 |
[Unity3D] Collision (충돌) (0) | 2022.02.23 |