250224 TIL

박소희·2025년 2월 24일

Unity_7기

목록 보기
34/94
post-thumbnail

아이템 구현 방식

추상 클래스, 인터페이스 둘 중 어떤 것으로 해야할까
아이템들의 공통 기능: 점수, 플레이어와 닿으면 사라짐, 스탯 증가

  • 인터페이스는 필드 정의를 못해서 추상 클래스로 결정
  • 추상 클래스로 하기에는 공통 함수를 작성해야되서 추상은 빼고 아이템 클래스들을 상속해주기로 했다.

보물 관리

보물은

  • 아이템 생성 기능
  • 플레이어 기존 스탯 조정 기능
  • 부활 관련 기능

으로 나눠져 있는데, 기능이 다 달라서 다른 변수를 요구한다.
-> 기본으로 필요한 변수(쿨타임, 이름, 설명)은 기존 Treasure 클래스에 남겨두고, 인터페이스를 만들어 분리시켰다.

  • 기존의 Treasure 클래스 밑에 인터페이스를 두려했으나, 따로 관리하는 것이 나을 것 같아 새 스크립트 안에 인터페이스들을 옮겼다.
    - MonoBehaviour를 상속받는 것이 아니면 스크립트 이름과 클래스 이름이 같지 않아도 된다.

FSM

상태를 기반으로 동작을 제어하는 방식을 구현하기 위하 디자인 패턴
단 하나의 상태만 가진다!

private enum State
{
	Idle,
    Move,
    Attack
}

private void Start()
{
	_state = State.Idle;
}

private void Update()
{
	switch(_state):
    	case State.Idel:
        	//Idle 구현
            break;
            ...
}

상태의 수가 적고 상태별 행동이 명확하게 구별될 때 효율이 좋다.

개인과제 피드백

디렉토리 파일 분리를 더 체계적으로 하자(Manager/Entity/Item)
update 문에서 현재 씬 이름을 확인하는 것은 성능적으로 매우 안좋다. -> 장면 전환이 이뤄질 때 한 번씩만으로 수정

0개의 댓글