[TIL] 41일차 - 개인 과제 겸 3D 공부

김유원·2024년 2월 21일
0

📝 24.02.21

어제 강의를 완강해서 오늘은 개인 과제 겸 3D 공부를 시작했다. 이번 주차는 각자 필요한 부분을 공부하는 주간이기 때문에 기존 숙련 주차와 심화 주차를 복습하며 3D 공부를 하는 것을 목표로 개인 과제를 생성했다.

이번에 일단 기본적으론 심화 주차에 배운 상태 머신 공부를 바탕으로 숙련 주차의 인벤토리와 UI, 그리고 포톤 공부를 합친 프로젝트로 3D 스파르타 던전 프로젝트를 만들어 볼까 한다.

특히 이름 입력을 통해 캐릭터 위에 이름표를 띄우는 것과 방에 접속하면 온라인 접속 인원이 뜨는 것을 주요하게 사용할 예정이다.

하지만 오늘 하루는 유한 상태 머신을 복습하는 데에 생각보다 시간을 가장 많이 들였다.

유한 상태 머신이란?

유한 상태 머신(Finite State Machine, FSM)이란 디자인 패턴의 일종으로 상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다.

  • FSM의 동작 원리
    • 상태 전환은 전환 조건을 충족할 때 발생하며, 전환 조건은 입력, 시간, 조건 등으로 결정됨
    • 상태 전환 시 이전 상태의 종료 동작과 새로운 상태의 진입 동작이 수행
  • 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 플레이어 제어에 가장 중요할 것 같다.

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보