📝 24.02.21
어제 강의를 완강해서 오늘은 개인 과제 겸 3D 공부를 시작했다. 이번 주차는 각자 필요한 부분을 공부하는 주간이기 때문에 기존 숙련 주차와 심화 주차를 복습하며 3D 공부를 하는 것을 목표로 개인 과제를 생성했다.
이번에 일단 기본적으론 심화 주차에 배운 상태 머신 공부를 바탕으로 숙련 주차의 인벤토리와 UI, 그리고 포톤 공부를 합친 프로젝트로 3D 스파르타 던전 프로젝트를 만들어 볼까 한다.
특히 이름 입력을 통해 캐릭터 위에 이름표를 띄우는 것과 방에 접속하면 온라인 접속 인원이 뜨는 것을 주요하게 사용할 예정이다.
하지만 오늘 하루는 유한 상태 머신을 복습하는 데에 생각보다 시간을 가장 많이 들였다.
유한 상태 머신(Finite State Machine, FSM)이란 디자인 패턴의 일종으로 상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다.
기본적 StateMachine
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.AI;
public abstract class StateMachine
{
protected IState currentState;
public void ChangeState(IState newState) //상태 바꿈
{
currentState?.Exit();
currentState = newState;
currentState?.Enter();
}
public void HandleInput() //조건 입력
{
currentState?.HandleInput();
}
public void Update() //현재 상태 실행
{
currentState?.Update();
}
public void PhysicsUpdate()
{
currentState?.PhysicsUpdate();
}
}
위의 메서드들을 통해 상태들을 제어하는 것이 가장 주요한 매커니즘이다. 이를 잘 활용하는 것이 3D 플레이어 제어에 가장 중요할 것 같다.