[ Unreal Engine 5 / #5 적 스폰 다른 방법 ]

SeungWoo·2024년 9월 3일
0
post-thumbnail

Enemy Spawn

  • 종속성
  • 싱글톤 패턴
    • 하나의 인스턴스를 만들고 그 인스턴스의 지워지지않은 정보를 저장해서 가져다 쓰는 방식

  • 현재 여러개의 BP_스폰 액터를 배치하고 있지만 하나로 줄이고 랜덤의 위치에서 스폰되게 할것이다

  • 실행을 누르지않아도 월드내에 배치해도 이벤트가 발생한다

  • Construction Script를 이용한 방법을 통해 실행전 에디터로 설정을 만질 수 있는 방법이 있다

  • 블루프린트 Actor하나를 만들고 "BP_SpawnPoints"라는 이름으로 만든 뒤 월드에 배치한다

  • 팩토리에 배치한 액터를 담을 TArray형태의 배열을 선언

CEnemyGOD

public:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite)
	TArray<AActor*> spawnPoints;
  • Construction Script 통해 해당 오브젝트를 찾아둔다

UFUNCION

언리얼 엔진에서 C++ 클래스의 함수에 메타데이터를 추가할 때 사용하는 매크로

  • BlueprintCallable : 블루프린트에서 함수를 호출할 수 있게 합니다.
  • BlueprintImplementableEvent : C++에서 함수의 구현이 필요하지 않고, 블루프린트에서 해당 함수를 오버라이드하여 구현할 수 있습니다.
  • BlueprintNativeEvent : C++에서 기본 구현을 제공하면서 블루프린트에서 오버라이드할 수 있게 합니다.
  • Exec : 게임 내 콘솔에서 이 함수를 명령어로 실행할 수 있게 합니다.
  • Server, Client, NetMulticast : 네트워크 레플리케이션을 위해 서버, 클라이언트, 멀티캐스트 함수로 설정할 수 있습니다.
  • Reliable, Unreliable : 네트워크 호출이 안정적으로 전달되도록 보장할지 여부를 설정합니다.
  • WithValidation : 함수에 대해 서버 호출 유효성을 검증하는 코드를 추가합니다.
  • Category : 블루프린트 내에서 함수가 속할 카테고리를 지정합니다.
  • meta = (DisplayName = "Custom Name") : 블루프린트에서 함수의 이름을 커스텀하게 표시할 수 있습니다.

CEnemyGOD.h

public:
	UFUNCTION(BlueprintNativeEvent)
	void FindSpawnPoins();

CEnemyGOD.cpp

void ACEnemyGOD::FindSpawnPoins_Implementation()
{
	GEngine->AddOnScreenDebugMessage(0, 2, FColor::Blue, "Test Native Event");
}
  • FindSpawnPoins_Implementation()는 무엇인가 사실 헤더에서FindSpawnPoins() 선언된 순간 UFUNCTION(BlueprintNativeEvent)에서 이미 블루프린트로 만들어놨다 그래서 FindSpawnPoins() cpp 파일을 만들경우 중복으로 만들었다는 오류가 뜬다
  • 그래서 BeginPlay() 함수에서 호출만 하고 그 기능은 블루프린트로 만들어 준다

CEnemyGOD.cpp

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

	FindSpawnPoins();
 
 	... 생략
 }

profile
This is my study archive

0개의 댓글