Unreal Track 1기 [25.02.28] - FPS 프로젝트 (6)

chooha·2025년 2월 28일

TIL

목록 보기
43/60

트러블 슈팅 - 총기 관리

  • 첫번째 방법 : 블루프린트 객체를 손에 스폰하고, 그 객체를 인벤에 넣어서 관리
    여기서 문제는 총이 스왑돼서 다른 총을 보여줘야 할 때 전에 들고있던 총을 어디로 없애야하냐..?
    플레이할때 보이지 않는 임의의 공간에 이 총을 잠시 파킹?해둬야하나 싶었지만 약간 찝찝한 방법이라 다른 방법을 쓰기로!

  • 두번째 방법 : 스폰할 블루프린트 객체와 인벤에 저장할 C++ 클래스 객체를 따로 관리
    이 방법의 문제는 총 클래스에서 총이 스폰된 월드값을 가져와서 총알을 스폰하는데..
    C++ 클래스 객체는 월드에 스폰되지 않기 때문에 월드값을 가져올 수 없음

그래서 요거를 어떻게 해결해야하나.. 생각하다가
손의 스켈레톤 소켓에 총기를 다 넣어놓고 ㅎ.. 메쉬만 사라지게하기
또는
블루프린트 객체를 스폰하고, 총의 정보만 인벤같은 저장소에 저장해놓고 액터 destory하기

둘 중에 후자가 맞는 것 같아서 총 매니저를 만들기로함!

캐릭터에서는 보여지는 모습, 즉 블루프린트 객체를 스폰하고 Destroy하는 것에 집중하고
스왑될때 총 매니저에 업데이트 요청을 해서 바꾸기 전 총의 정보를 저장해주기로 함!

프로젝트 중간 피드백

  • AddWeapon()
    데이터만 들고있는 객체를 사용하고 싶다면 (월드에 스폰하지않고)
    UObject를 상속해서 사용하는게 좋음!
    UActor를 상속해서 NewObject를 호출해서 쓰면 가비지콜렉터가 제대로 작동하지 않음

  • OnOverlapBegin()
    아이템 여러개 오버랩 됐을 때도 가능해지게

팁!

  • 블루프린트 액터 클래스 로드할 때 데이터 테이블로 관리해야 함!

  • 오브젝트 풀

0개의 댓글