2024/01/24 3

Section 6. Animation - State 패턴

여러가지 상태들을 bool 변수로 두고 관리하다 보면 스파게티 코드가 되어버려 점점 요소를 추가하거나 관리하기가 힘들어진다 따라서 이들을 state 패턴으로 관리하면 편하다 PlayerController 스크립트에서 다음과 같은 열거형을 만들어준다 public enum PlayerState { Die, Moving, Idle, } PlayerState _state = PlayerState.Idle; 그리고 Update함수에서 switch 문을 활용하여 분기를 만들어주고, 각 함수에 기존 동작들을 넣어준다 void Update() { switch (_state) { case PlayerState.Die: UpdateDie(); break; case PlayerState.Moving: UpdateMoving..

Section 6. Animation - Animation Blending

애니메이션의 상태 변화를 조금 더 자연스럽게 할 수 있도록 도와주는 기능 Animator 창에서 우클릭 해서 Create State > From new Blend Tree 를 클릭해주면 블랜드 트리가 생긴다 그리고 블랜드 트리를 타고 들어가서 Blend tree에 우클릭 > Add Motion 혹은 Inspector 창에서 + > add motion field를 눌러서 모션을 추가해준다 float 형식의 새 파라미터를 추가해주고, Inspector 창에서 Blend로 되어있던 파라미터를 새로 추가한 파라미터로 변경해준다 위에 그래프 부분을 클릭하면 아래에서 Threshold 수치를 변경할 수 있는데, 각각 0과 1로 맞춰준다 결국 wait_run_ratio(그래프에서 빨간 선을 움직이며 확인 가능) 수치..

Section 5. Camera

다양한 카메라 모드를 구현하기 위해 새로운 스크립트를 정의한다 파일 경로: Assets > Scripts > Utils > Define.cs public class Define { public enum CameraMode { QuarterView, } } 위와 같이 카메라모드를 정의해 준 다음, Assets > Scripts > Controllers > CameraController.cs(main camera 오브젝트에 부착)에서 public class CameraController : MonoBehaviour { Define.CameraMode _mode = Define.CameraMode.QuarterView; Vector3 _delta = new Vector3(0.0f, 6.0f, -5.0f); G..