본문 바로가기

언리얼 C++ 게임 개발의 정석/14. 게임의 완성4

14.4 게임 중지 와 결과 화면 게임 중지 및 결과 화면 UI 설정이미 만들어진 UI_Menu.uasset, UI_Result.uasset 파일을 프로젝트 추가위의 위젯들은 버튼은 기능별로 동일한 이름을 가지도록 설계bthResume: 현재 진행 중인 게임으로 돌아가기bthReturnToTitle :  타이틀 레벨로 전환bthRetryGame : 게임에 재도전 입력키 설정게임 중지는 ESC 키가 적합 하지만 에디터에 게임 플레이 종료 키와 같기 때문에 M 를 사용GamePause 라는 액션 매핑 추가  ABPlayerController플레이어 컨트롤러에 Game Pause 맵핑 하면 빙의에 상관 없이 입력 처리게임 시스템 관련 입력은 ABPlayerController 에서 구현UCLASS()class ARENABATTLE_API AAB.. 2024. 6. 2.
14.3 타이틀 화면 제작 타이틀 레벨 제작미리 만들어진 UI폴더를 현재 프로젝트에 적용아무 기능 없이 UI 화면 띄위는 역할 ABUIPlayerController 클래스 생성UI 입력 모드로 설정 및 UI 생성해 뷰포트에 부착UCLASS()class ARENABATTLE_API AABUIPlayerController : public APlayerController{ GENERATED_BODY() protected: virtual void BeginPlay() override; //UI 인스턴스 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = UI) TSubclassOf UIWidgetClass; //뷰포트에 부착 할 UI UPROPERTY() class UUserW.. 2024. 6. 1.
14.2 전투 시스템 설계 부가 요소 추가1. 레벨 업 시 HP 회복2. 무기 사용 시 긴 공격 범위 3. 무기 착장 시 랜덤으로 공격력 증가 및 감소4. 게임 스코어가 높을 수록 NPC 레벨 증가 레벨 업 시 HP 회복#include "ABCharacterStatComponent.h"//현재 스테이트의 경험치에 죽은 NPC 경험치 더하기void AABPlayerController::NPCKill(AABCharacter* KilledNPC) const{ if (ABPlayerState->AddExp(KilledNPC->GetExp())) { //ABPlayerController 빙의된 플레이어 엑터 if (GetPawn()) { //레벨 업 시 새로운 레벨로 지정 및 HP 회복 AABCharacter* characte.. 2024. 5. 27.
14.1 게임 데이터의 저장과 로딩 플레이어의 데이터를 저장 하고 불러오는 기능 구현 방식언리얼 오브젝트를 상속 받은 SaveGame 클래스 설계 세이브 시스템에 SaveGame 데이터를 넘겨주면 저장 과 로딩을 쉽게 구현에디터에서 저장 할 경우 Save 폴더에 있는 SaveGames 폴더에 게임 데이터가 저장 SaveGame 상속 받은 ABSaveGame 클래스 생성각 저장 파일에 접근 할려면 고유 이름은 슬롯 이름 필요기본 세이브 데이터를 생성 하는 로직으로 플레이어 스테이트 구현UCLASS()class ARENABATTLE_API UABSaveGame : public USaveGame{ GENERATED_BODY()public: UABSaveGame(); //레벨 저장 변수 UPROPERTY() int32 Level; //경험치 .. 2024. 5. 24.