반응형
1. State 패턴으로 Animation실행하기
01 상태 정의
PlayerController.cs
public enum PlayerState
{
Die,
Moving,
Idle,
}
PlayerState _state = PlayerState.Idle;
02 상태에 따라 Switch
void Update()
{
switch (_state)
{
case PlayerState.Die:
UpdateDie();
break;
case PlayerState.Moving:
UpdateMoving();
break;
case PlayerState Idle:
UpdateIdle();
break;
}
}
enum으로 상태들을 정의하고, switch문으로 실행한다. 그러므로 동시에 두 가지 상태를 가질없지만 꼬이지 않는다는 장점도 있다.
2. State Machine
어떤 상태이냐에 따라 재생새킬 애니메이션이 다르다. State Machine에서 하나의 State는 하나의 Animation 클립에 대응
다른 상태로 바뀌는 전이 -> 화살표로 이어주기만 하면 된다.
01 Transition
RUN과 RUN사이 밑에 WAIT이 블랜딩 된 것을 확인할 수 있다. 이는 파란색 범위로 조절할 수 있다. 만약 블랜딩을 안시킨다음 애니메이션을 설정하면 뚝 끊기는 것 거처럼 보인다.
Has Exit Time 애니메이션 재생 종료 후 다음 전이로 이동한다. 만약 이를 설정하지 않으면 애니메이션이 종료가 안된다.
Transition Duration : 몇 초 동안 겹쳐질 것인가
Exit Time : 얼마정도 기다렸다가 넘어갈 것인
Fixed Duration : 체크가 되어 있으면 그 시간 후에 넘어간다. 그니까 0.68초 후에 넘어간다.
체크가 안되어있으면 애니메이션의 0.6875%가 완료되었으면 넘어간다.
02 파라미터 사용
WAIT -> RUN
void UpdateMoving()
{
anim.SetFloat("speed", _speed);
}
RUN - > WAIT
void UpdateIdle()
{
anim.SetFloat("speed", 0);
}
참고 : 본 내용은 MMORPG PART3 강의를 수강하여 작성하였습니다.
https://www.inflearn.com/course/mmorpg-%EC%9C%A0%EB%8B%88%ED%8B%B0/dashboard
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - Raycast, 좌표계, LayerMask, Tag (0) | 2023.02.19 |
---|---|
Unity - UI 기초, UI Rect Transform, Anchor Presets 설명 (0) | 2023.02.15 |
Unity - KeyFrame Animation(Key, Dope Sheet, Curves),Animation Event (0) | 2023.02.15 |
Unity - Animation 기초, Aniamtion Blending (0) | 2023.02.14 |
Unity - Collider,Collision,Trigger 정리 (0) | 2023.02.12 |
댓글