본문 바로가기

728x90
728x90

프로그래밍

C++ 개발 생산성 극대화! 기본값을 지원하는 Getter/Setter 자동 생성 매크로 (수정 및 개선) 개발 효율을 높여줄 팁을 들고 왔습니다. 특히 C++ 개발, 그중에서도 언리얼 엔진(Unreal Engine)을 다루시는 분들이라면 주목해주세요! 반복적인 코딩 작업을 줄여주고 생산성을 확 끌어올려 줄 Getter/Setter 자동 생성 매크로에 대해 이야기해보려 합니다. 왜 이 매크로가 필요할까요?C++로 개발하다 보면 멤버 변수를 선언하고, 그에 대한 Getter/Setter를 만드는 작업은 정말 흔하죠. 여기에 언리얼 엔진에서는 UPROPERTY 매크로를 이용해 변수 속성을 지정하고, 기본값까지 설정해야 합니다. 이 모든 과정을 매번 손으로 타이핑하는 건 시간 낭비이자 오타 발생의 주범이 될 수 있습니다.오늘 소개해 드릴 매크로는 Getter/Setter 자동 생성을 중점적으로 다룹니다. 멤버 변.. 더보기
🎮 [언리얼 엔진 5] FGameplayTag에서 특정 단어 포함 여부 확인하는 방법 언리얼 엔진 5에서 FGameplayTag를 사용할 때, "Character.Status.Dead"와 같은 태그 문자열에서 "Dead"라는 **세그먼트(단어)**가 포함되어 있는지를 확인하고 싶은 경우가 종종 있습니다.이번 포스팅에서는 Unreal Engine 5에서 FGameplayTag의 내장 함수만을 활용한 방법과, 안전한 문자열 기반 방법까지 두 가지를 소개해드립니다.✅ 목표예를 들어, FGameplayTag 값이 다음과 같다고 가정합니다.Character.Status.Dead 이때 "Dead"라는 단어가 이 태그에 포함되어 있는지를 확인하고 싶은 상황입니다.✅ 방법 1. MatchesTag() 함수 사용 (전제 조건 있음)FGameplayTag는 자체적으로 계층 구조 기반 비교를 지원합니다.Ma.. 더보기
🎮 [Unreal Engine 5] 액터의 상대 위치를 월드 위치로 변환하는 방법 언리얼 엔진 5(UE5)에서 액터의 상대 위치(Relative Location) 를 월드 위치(World Location) 로 변환하는 방법에 대해 알아보겠습니다.게임을 만들다 보면, 액터를 기준으로 특정 방향이나 거리만큼 떨어진 지점의 절대 좌표가 필요할 때가 많죠.예를 들어, 플레이어 캐릭터 앞쪽 100cm 지점에 이펙트를 생성하고 싶을 때!그럴 땐 이 방법을 쓰면 됩니다 🔧📌 상대 위치 → 월드 위치 변환 함수 (C++)아래는 C++로 작성한 함수입니다.액터를 기준으로 상대 위치를 받아서, 그에 해당하는 월드 위치를 반환해줍니다.FVector ConvertRelativeToWorldLocation(AActor* Actor, const FVector& RelativeLocation){ if .. 더보기
🎮 언리얼 엔진5에서 특정 클래스의 액터 찾기 (C++ ) 언리얼 엔진5(UE5)에서 특정 클래스의 액터(Actor)를 찾는 방법을 소개해드리려고 합니다.게임 개발을 하다 보면, 월드 내에 존재하는 특정 클래스의 액터를 탐색하거나 조작해야 하는 경우가 많죠.이번 포스팅에서는 C++ 코드로 해당 기능을 구현하는 방법을 알아보겠습니다.✅ C++ 코드로 클래스 기반 액터 찾기언리얼 엔진에서는 UGameplayStatics::GetAllActorsOfClass 또는 TActorIterator를 이용해월드(World) 내 특정 클래스에 해당하는 모든 액터를 가져올 수 있습니다. 📌 예제 코드// AMyActor는 찾고자 하는 액터 클래스입니다.void AMyActorFinder::FindMyActor(UWorld* World){ if (!World) return;.. 더보기
🎮 [언리얼 엔진 5] UWorldSubsystem에서 파라미터 복제(Replicate) 구현 방법! 언리얼 엔진 5에서 UWorldSubsystem 안의 변수를 복제(Replicate)하는 방법을 소개드릴게요.UWorldSubsystem은 일반적인 액터가 아니라서 DOREPLIFETIME 같은 복제 매크로가 직접 적용되지 않아요. 그래서 약간의 우회적인 방식으로 구현해야 합니다. 아래 내용을 따라 해보시면 쉽게 구현하실 수 있어요 😊✅ 왜 UWorldSubsystem에서 복제가 어렵나요?UWorldSubsystem은 AActor가 아니기 때문에:DOREPLIFETIME 사용 불가bReplicates 같은 속성 없음네트워크를 통해 직접 복제 불가따라서 복제를 위해서는 복제 가능한 별도의 액터를 만들어서 그 액터를 통해 데이터를 주고받는 방식으로 우회합니다.✅ Step 1. 복제 가능한 액터 생성하기AA.. 더보기
🎮 언리얼 엔진5(Ue5) – UActorComponent에서 TArray 변수 복제(Replicate)하기 언리얼 엔진5에서 UActorComponent 안에 TArray(배열)을 복제하는 방법을 소개해드릴게요. 일반적으로 float 변수 하나를 복제할 때는 UPROPERTY(Replicated)만 써도 충분하지만, 배열처럼 여러 값을 포함하는 자료형은 조금 더 주의가 필요합니다.이번 포스트에서는 TArray를 복제하는 기본적인 방법을 코드 예제와 함께 소개해드릴게요.✅ Step 1 – 헤더 파일 설정우선, 배열 멤버 변수를 선언하고 복제에 사용할 OnRep 함수를 정의합니다.UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )class YOURGAME_API UMyActorComponent : public UActorComponent{ GENE.. 더보기
🎮 언리얼 엔진5에서 int64 값을 UE_LOG로 출력하는 방법! 오늘은 언리얼 엔진 5 (Unreal Engine 5, 이하 UE5)에서 int64 타입의 숫자를 로그로 출력하는 방법을 소개할게요.디버깅하면서 큰 숫자를 다뤄야 할 일이 많으신가요?그렇다면 int64 타입 로그 출력법을 꼭 알아두셔야 합니다!🧩 UE_LOG로 int64 출력하기UE5에서는 UE_LOG 매크로를 사용해 로그를 남길 수 있습니다.특히 int64처럼 64비트 정수형 데이터를 출력할 땐, 정확한 포맷 문자열이 필수입니다!✅ 코드 예시:void LogInt64Value(){ int64 MyInt64Value = 123456789012345LL; UE_LOG(LogTemp, Log, TEXT("My int64 value is: %lld"), MyInt64Value);} 📝 코드 설명.. 더보기
🎮 UE5 "Ctrl + 1" 키 조합 입력 설정하기 (Enhanced Input) ✅ 1단계: Enhanced Input 시스템 활성화먼저 프로젝트가 Enhanced Input을 사용하도록 설정합니다.Edit > Plugins로 이동Enhanced Input 플러그인 활성화Edit > Project Settings > Input 에서→ Default Input Class가 Enhanced Input Subsystem 기반인지 확인🎮 2단계: Input Action 2개 생성조합 키를 만들기 위해 두 개의 Input Action이 필요합니다.🎯 A. Ctrl 키용 Input Action이름: IA_CtrlValue Type: Boolean용도: Ctrl 키가 눌렸는지 감지🎯 B. Ctrl + 1 조합용 Input Action이름: IA_CtrlOneValue Type: Boolea.. 더보기

728x90
728x90