-
블루아카이브 루트슈터 팬게임 프로젝트(2) - 아이템, 총기 클래스루트슈터 프로젝트 2023. 12. 28. 23:29
이 프로젝트를 시작하고 나서는 하루종일 책상에 앉아 언리얼만 만지작 거리고 있습니다. 즐겁기는 한데 건강에 이상이 오진 않을지 걱정되네요.
아무튼 요새는 하루에 계속 하나씩 기능을 추가하면서 진행하고 있습니다. 아직까지는 엄청나게 벽에 가로막힌 느낌은 들지 않아서 하루에 조금씩 진행이 되고 있는데 언젠간 크게 막힐거 같은 느낌이 들어 불안하네요. 오늘은 아이템 클래스와 총기 클래스에 대해 소개하겠습니다. 사실 지금 소개한것들은 개발한지 기간이 좀 됐고 지금은 인벤토리 기능을 구현중입니다. 계속해서 꾸준하게 소개해 가도록 하겠습니다.
ItemBase.h
먼저 아이템들의 기본 베이스 클래스입니다. 아이템의 이름, 아이템 레벨, 타입, 희귀도는 모든 아이템이 가지고 있기 때문에 이곳에 넣어놓았습니다. 참고로 UTexture2D* icon은 아이템의 아이콘으로 차후 인벤토리에 들어갔을때 슬롯에 보여질 아이콘들입니다. 이것 또한 인벤토리에 들어가는 아이템은 전부 가지고 있어야 하기 때문에 넣어놓았습니다.
Gun.h
다음으로 위의 아이템 클래스를 상속받은 총기 클래스 헤더파일입니다. 총기 스태틱 메시를 가지는 gunMesh와 총알이 발사될 위치를 가지는 projectileSpawnPoint를 가지고 있습니다. MoveToInventory나 OnCharacterOverlap 함수는 인벤토리 기능을 위해 구현된 함수입니다. 나중에 인벤토리 기능을 소개할때 설명하도록 하겠습니다.
Gun.cpp
Gun.cpp부터는 여러가지 많아집니다. 생성자에서 여러가지 컴포넌트를 만들어 Root컴포넌트에 붙이고 있습니다. triggerBox 컴포넌트는 총이 땅바닥에 있을때 플레이어를 감지하기 위한 컴포넌트입니다. 인벤토리 기능에서 사용되는 컴포넌트입니다.
다음으로 총의 발사 함수입니다. 먼저 총에 등록된 총알 클래스를 기반으로 액터 생성 후 총알의 데미지와 Owner를 저장시켜줍니다. 지금은 간단하게 총의 무기데미지 = 총알의 데미지인데, 앞으로 캐릭터 특성이라던가 방어구 등으로 추가스탯을 얻는 기능까지 구현된다면 데미지 공식을 여기서 적용시킬 계획입니다.
오늘은 이만 줄이겠습니다. 다음 포스팅은 아마도 총기 스폰시 랜덤스탯이 나오도록 하는 기능을 소개할까 합니다.
'루트슈터 프로젝트' 카테고리의 다른 글
블루아카이브 루트슈터 팬게임 프로젝트(5) - 드래그 앤 드롭 기능 (1) 2024.01.01 블루아카이브 루트슈터 팬게임 프로젝트(4) - 인벤토리 기능 (2) 2023.12.31 블루아카이브 루트슈터 팬게임 프로젝트(3) - 아이템랜덤 옵션 생성기능 (1) 2023.12.30 블루아카이브 루트슈터 팬게임 프로젝트(1) - 아이템 구조체 구현 (0) 2023.12.27 블루아카이브 루트슈터 팬게임 프로젝트(0) - 개발개요(?) (0) 2023.12.27