1. obj.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "AuraObject.generated.h"
/**
*
*/
UCLASS()
class AURA_API UAuraObject : public UObject
{
GENERATED_BODY()
public:
UAuraObject();
UFUNCTION()
void HelloUnreal();
const FString& GetObjectName() const { return Name;}
protected:
UPROPERTY()
FString Name; //
};
// Fill out your copyright notice in the Description page of Project Settings.
#include "AuraObject.h"
UAuraObject::UAuraObject()
{
Name = TEXT("asdf");
}
void UAuraObject::HelloUnreal()
{
}
1. FString 은 유사 포인터라고 생각하면 될듯하다.
리턴시 : FString& 타입임
사용시 * Name으로 사용
2.instance.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "AuraGameInstance.generated.h"
/**
*
*/
UCLASS()
class AURA_API UAuraGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
protected:
virtual void Init() override;
};
// Fill out your copyright notice in the Description page of Project Settings.
#include "AuraGameInstance.h"
#include "AuraObject.h"
void UAuraGameInstance::Init()
{
Super::Init();
auto Obj1= NewObject<UAuraObject>();
UE_LOG(LogTexture,Log,TEXT("obj1`s name is : %s"),*Obj1->GetObjectName());
//문자열 접근시 *으로 접근해야함
auto NameProperty = UAuraObject::StaticClass()->FindPropertyByName(TEXT("Name"));
FString CompileTimeObjName;
if(nullptr!=NameProperty)
{
//컨테이너안에서 이름가져와서 &변수에 넣어줘
NameProperty->GetValue_InContainer(Obj1,&CompileTimeObjName);
UE_LOG(LogTexture,Log,TEXT("CompileTimeObjName`s name is : %s"),*CompileTimeObjName);
//문자열 접근시 *으로 접근해야함
}
}
1. 직접 Get함수로 이름을 가져와도 되고,
2. 자동으로 만들어주는 리플렉션함수인 StaticClass를 통해 가져와도 같은결과가 나온다!
'UE5' 카테고리의 다른 글
[UE5] 인터페이스에 값대입하는 방법 (0) | 2024.05.28 |
---|---|
[UE5] 향상된 입력 사용방법 (0) | 2024.05.25 |
[UE5] 비행기만들기, 이동 회전 구현 (0) | 2024.05.13 |
[UE5] 머태리얼, 텍스쳐 (0) | 2024.05.13 |
[UE5] 가고일 물리반응 끄기, trigger에 붙여서 같이 내려가도록 구현 (0) | 2023.09.18 |