본문 바로가기

프로그래밍

구조체 타입 로그 출력 팁! in 언리얼

728x90

물론이죠! FVector의 ToString 함수를 구조체 내에서 사용하도록 코드를 수정할 수 있습니다. 아래는 FVector의 ToString 함수를 사용하여 구조체의 ToString 함수를 재정의한 예제 코드입니다:

  • 구조체 정의 및 ToString 함수 재정의:
// MyStruct.h
#pragma once

USTRUCT(BlueprintType)
struct FMyStruct
{
    GENERATED_BODY()

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyStruct")
    FVector MyVector;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyStruct")
    int32 MyInt;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyStruct")
    float MyFloat;

    FMyStruct()
        : MyVector(FVector::ZeroVector), MyInt(0), MyFloat(0.0f)
    {
    }

    FString ToString() const
    {
        return FString::Printf(TEXT("MyVector: %s, MyInt: %d, MyFloat: %f"), *MyVector.ToString(), MyInt, MyFloat);
    }
};

 
 

  • 구조체의 ToString 함수를 사용하여 로그에 출력:
// MyActor.cpp

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

    FMyStruct MyStructInstance;
    MyStructInstance.MyVector = FVector(1.0f, 2.0f, 3.0f);
    MyStructInstance.MyInt = 42;
    MyStructInstance.MyFloat = 3.14f;

    // 구조체의 ToString 함수를 사용하여 값을 문자열로 변환
    FString StructString = MyStructInstance.ToString();
    UE_LOG(LogTemp, Warning, TEXT("%s"), *StructString);
}

 
 
이 예제에서는:

  • FMyStruct 구조체 내에서 FVector의 ToString 함수를 사용하여 MyVector를 문자열로 변환합니다.
  • ToString 함수는 FVector의 문자열 표현과 함께 MyInt와 MyFloat 값을 포함한 문자열을 반환합니다.
  • BeginPlay 함수에서 ToString 함수를 호출하여 구조체의 값을 로그에 출력합니다.

이렇게 하면 FVector의 ToString 함수를 활용하여 구조체의 값을 더 쉽게 출력할 수 있습니다. 추가로 궁금한 점이 있으면 언제든지 말씀해 주세요!

728x90