언리얼 엔진5 4

[UE5] 무기 장착하기

캐릭터에 무기를 장착하는 법을 간단하게 알아봅시다.우선 캐릭터 에셋의 Skeleton에 보면 위와 같이 캐릭터를 구성하는 Hierarchy가 보입니다. 여기서 무기를 찾아보면 저는 weapon_l과 weapon_r이 있는데, weapon_l은 hidden 처리 되어 있는 걸 보니 weapon_r을 사용하는 것 같습니다.weapon_r의 하위에 "WeaponSocket"이라는 임시 소켓을 만들어둡니다. private: UPROPERTY(EditDefaultsOnly) TSubclassOf GunClass; UPROPERTY() AGun* Gun;};캐릭터 C++ 클래스 헤더에 위와 같이 Gunclass와 Gun 객체를 만들어줍니다.Gun의 경우 포인터 타입을 헤더파일에 선언했기 때문에 언리얼의 Garbag..

언리얼 엔진5 2025.03.27

[UE5] 타이머 설정하기

게임 시작 전 카운트다운을 구현하기 위해 타이머를 설정해봅시다. 우선 Player Controller가 필요하므로 ToonTanksPlayerController라는 class를 미리 만들었습니다. 그리고 GameMode class에서 다음과 같이 구현하였습니다. Actor 선언과 초기화private: class ATank* Tank; class AToonTanksPlayerController* ToonTanksPlayerController;#include "Kismet/GameplayStatics.h"void ATanksGameMode::BeginPlay() { Super::BeginPlay(); Tank = Cast(UGameplayStatics::GetPlayerPawn(this, 0)); // pl..

언리얼 엔진5 2025.03.27

[UE5] C++ 클래스에서 컴포넌트 구성하기

C++ 클래스에서 컴포넌트를 구성하는 법을 알아봅시다. Pawn의 베이스가 되는 BasePawn.cpp를 생성해봤습니다.  private: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components", meta = (AllowPrivateAccess = "true")) class UCapsuleComponent* CapsuleComp; Capsule Component를 만들기 위해 다음과 같이 작성하였습니다. UCapsuleComponent type과 같이 헤더파일에 포함되어 있지 않은 클래스 객체를 선언하기 위해서는 부가적인 헤더파일이 필요합니다. 하지만 cpp 파일이 아닌 헤더파일에 또 다른 헤더파일을 추가하게 되면 불필요한 데이터를 ..

언리얼 엔진5 2025.03.27

[UE5] 플레이어 감지

해당 범위 내에 플레이어가 들어오면 이를 감지하는 적Enemy를 구현해보았습니다. 다음과 같이 4마리의 적을 만들었습니다. bool ATower::InFireRange() { if (Tank == nullptr) return false; float Distance = FVector::Dist(GetActorLocation(), Tank->GetActorLocation()); return Distance 위와 같이 적들의 위치(GetActorLocation)와 플레이어의 Pawn(Tank->GetActorLocation)의 거리를 FVector::Dist로 구하고 사정거리 내에 있는지 여부를 반환합니다. 이를 Tick에 넣어줍니다. void ATower::Tick(float deltaTime) { Sup..

언리얼 엔진5 2025.03.27