프로젝트 VV 개발일지(0)/다이어리

05.28 게임모드에서 캐릭터와 컨트롤러를 연결해주자

누가 뭐래도 개발자 2025. 5. 29. 01:04

2025.05.28

오늘의 목표

분리형 구조 개선

작업 내용

  • 게임모드에서 컨트롤러에 캐릭터 캐싱

 

배운 것

  • 단일 vs 분리 => 유지

훗날을 대비해서 분리형을 유지하기로 했다.

그래서 분리형에서 문제점이 될 수 있는 현 구조를 개선해야한다.

 

  • 플레이어 컨트롤러가 플레이어 캐릭터를 참조하는 방법

현재: TActorIterator 로 캐릭터를 찾아서 캐싱.

문제점: 캐릭터보다 컨트롤러가 먼저 생성된다면 nullptr.

개선: 2번

1. 캐릭터 쪽에서 컨트롤러 함수를 직접 호출하여 자신의 포인터를 넘긴다. 

2. 게임모드에서 설정.

일반적인 경우, 게임모드에서 캐릭터를 스폰하지만, 나는 none 상태를 유지해야 하기에 각 캐릭터와 플레이어 컨트롤러가 빙의/생성된 시점에 알림을 주면, 그때 둘을 연결 시키는 방법을 사용하기로 했다. 

 

 

싱글 플레이 싱글 유저이지만 이 게임의 특성상, 캐릭터는 자주 리스폰 될 것이기에 매번 연결이 보장되게끔 설계해야 한다.

이를 위해서 레벨 이동을 어떻게 처리 할지에 대해 알아봤다.

 

  • 레벨 이동 방식

1. OpenLevel: 맵 이동 시 레벨의 거의 모든 액터는 파괴되고 새로 생성된다. => 엔딩 처리

2. Streaming Levels: 월드 하나를 여러 서브 레벨로 쪼개는 것.  => 주 

Persistent Level + Streaming Level 

 

더 필요한 건 해당 부분을 구현할 때 신경 쓰자.