UE5

2/19 프로젝트 진행상황

개발꼬순내 ㅣ 2025. 2. 19. 21:46

어제까지는 개발환경구축에 중점을 뒀고 오늘부터는 본격적으로 기능구현을 시작했다.

혼자 이런저런 망상하느라 현재는 남들에 비해 진도가 많이 느린편이다.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameState.h"
#include "CP_GameState.generated.h"


UCLASS()
class CYBERPUNK_API ACP_GameState : public AGameState
{
	GENERATED_BODY()
public:

	ACP_GameState();
	virtual void BeginPlay() override;



	int32 Wave;
	int32 AI_Count;
	float WatingTime;


	FTimerHandle AIWatingTimerHandel; //ai스폰 이후 대기시간 타이머
	FTimerHandle PlayTimerHandle; // 총 플레이 타임 타이머

	void StartWave(); //Wave 시작 함수
	void StartBossWave(); //보스전 시작 함수
	void OnGameOver(); //캐릭터 체력이 0이 됬을 경우 호출
	void KillAll(); //모든 적을 잡았을 때 호출
	void SpawnAI(); //웨이브가 새로 시작할 때 적을 생성하는 함수
};

GameState.h 파일이다. 게임흐름을 관리하게 될 것이고 아직은 이이상 더 추가할 요소는 잘 모르겠다.

게임 진행자체가 강의에서 했던 프로젝트와 비슷해서 다른 팀원들이 구현해놓은 기능들 쏙쏙 빼서 쓰다보면 쉽게 완성하지 않을까 라는 생각이 든다. 아직은...

 

#include "Core/CP_GameState.h"
#include "Character/CP_PlayerController.h"
#include "Core/CP_PlayerHUD.h"

ACP_GameState::ACP_GameState()
{
	Wave = 0;
	WatingTime = 3.0f;
	AI_Count = 0;
}

void ACP_GameState::BeginPlay()
{
	Super::BeginPlay();

	StartWave();

}

void ACP_GameState::StartWave()
{
	SpawnAI();
	//AI스폰이후 WatingTime초가 지나면 이동시작 이동함수 미구현으로 주석처리.
	/*GetWorldTimerManager().SetTimer(
		AIWatingTimerHandel,
		this,
		&CP_EnemyAI::StartMove,
		WatingTime,
		false
	);*/

}

void ACP_GameState::StartBossWave()
{

}

void ACP_GameState::OnGameOver()
{
	if (APlayerController* PlayerController = GetWorld()->GetFirstPlayerController())
	{
		if (ACP_PlayerController* CP_PlayerController = Cast<ACP_PlayerController>(PlayerController))
		{
			CP_PlayerController->SetPause(true);
			// CP_PlayerController->ShowMainMenu(); //미구현
		}
	}
}

void ACP_GameState::KillAll()
{
	if (AI_Count >= 0 && Wave <= 3)// ai가 모두 죽고 현재 웨이브가 2이하면 다음 웨이브 진행
	{
		StartWave();
	}
	else if (AI_Count >= 0 && Wave > 2) // 3웨이브를 끝냈다면 보스전 진행
	{
		StartBossWave();
	}
	else //보스전 종료
	{
		if (Wave > 3)
		{
			OnGameOver();
		}
	}
}

void ACP_GameState::SpawnAI()
{
}

아직은 많이 앙상한 .cpp파일... 생각해보니 오늘이 3일차인데 진도가 느린 느낌이 없지않긴 하다...

그래도 리비전 컨트롤이랑 깃허브 환경은 구축해놨으니 개발만 하면 된다..!

'UE5' 카테고리의 다른 글

AI Spawn  (0) 2025.02.21
Character Spawn  (0) 2025.02.20
Revision Control  (0) 2025.02.18
새벽 과제  (0) 2025.02.15
Unreal Engine Chater.3 Code Review(1)  (0) 2025.02.11