본문 바로가기

728x90
728x90

프로그래밍

🎮 [언리얼 엔진 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.. 더보기
UE5 구조체에서 operator< 를 오버라이드하여 자동 정렬하는 방법 언리얼 엔진 5 (UE5) 에서 구조체를 사용할 때, 배열을 정렬하는 깔끔한 방법을 소개해 드립니다.특히 자동화 작업(Automation Task) 같은 구조체를 정렬할 때 유용한 팁인데요. 매번 람다식을 쓰지 않고, 아예 구조체 자체에 operator바로 시작해 볼게요 :)기존 방식: Sort() + 람다식 사용하기보통 UE5에서 배열을 정렬할 때는 이렇게 람다식을 사용합니다.TArray AutomationTasks;AutomationTasks.Sort([](const FAutomationTask& A, const FAutomationTask& B) { return A.OperatorOverridePriority  이렇게 하면 OperatorOverridePriority 값을 기준으로 정렬되지만,.. 더보기
언리얼 엔진 5 (UE5) TArray의 Push 와 Pop 은 왜 FILO 인가요? 언리얼 엔진 5 (UE5)를 사용하시면서 헷갈릴 수 있는 TArray의 Push() 와 Pop() 함수가 왜 FILO 방식인지 쉽게 정리해 보겠습니다. 📌 TArray 란?TArray는 UE5에서 제공하는 동적 배열 클래스입니다.쉽게 말해, 우리가 원하는 만큼 데이터를 넣고 뺄 수 있는 가변 길이 배열이라고 볼 수 있어요. 📌 Push() 와 Pop() 의 역할Push(Element)→ 배열의 끝에 요소를 추가합니다.Pop()→ 배열의 마지막 요소를 제거하고 반환합니다.여기서 핵심은, 항상 배열의 뒤쪽(끝)을 기준으로 동작한다는 점이에요! 📌 FILO 란?FILO는 First-In, Last-Out, 즉 먼저 들어온 것이 나중에 나간다는 뜻입니다.쉽게 말해, 스택(Stack) 구조와 동일합니다. 예.. 더보기
언리얼 엔진 5(UE5)에서 캐릭터 위치에서 벡터 그리기 안녕하세요, 언리얼 엔진 5(UE5)에서 캐릭터의 위치를 기준으로 벡터를 그리는 방법을 알려드리겠습니다.디버그 라인을 활용하면 게임 내에서 벡터를 시각적으로 확인할 수 있어, 디버깅이나 개발에 매우 유용합니다.📌 벡터 그리기 함수 만들기아래 코드를 캐릭터 클래스에 추가하면, 현재 캐릭터의 위치에서 특정 방향으로 벡터를 그릴 수 있습니다.void AYourCharacterClass::DrawVector(){ FVector Start = GetActorLocation(); // 캐릭터 위치 가져오기 FVector Direction = GetActorForwardVector(); // 캐릭터가 바라보는 방향 float Length = 300.0f; // 벡터 길이 설정 FVector E.. 더보기
언리얼 엔진 5 (UE5) FRotator → FQuat 변환 방법 언리얼 엔진 5(UE5)에서 FRotator를 **FQuat(Quaternion, 사원수)**로 변환하는 방법을 소개해드립니다.1. FRotator를 FQuat로 변환하기 (C++ 코드)아래 코드에서는 FRotator를 FQuat로 변환하는 방법을 보여줍니다.FRotator Rotation(0.0f, 90.0f, 0.0f); // 예제 회전 값 (Pitch, Yaw, Roll)FQuat QuatRotation = Rotation.Quaternion(); // FQuat 변환// 변환된 FQuat 값 출력 (디버깅 용도)UE_LOG(LogTemp, Log, TEXT("Quat: X=%f, Y=%f, Z=%f, W=%f"), QuatRotation.X, QuatRotation.Y, QuatRotation.Z.. 더보기

728x90
728x90