(언리얼 강의나 구글링을 통해 공부하면서 개인적으로 필요한 것들을 정리하는 포스팅이다)
UCLASS()
class UNREALINTRODUCTION_API AMyActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AMyActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
};
위 예제 코드는 unreal에서 actor 기본 클래스를 생성한 것이다.
위 코드에서 class위에 붙은 UCLASS라는 것은 C#에서의 reflextion과 비슷한 역할이라고 한다.
C#에서의 reflextion은 객체의 클래스 타입, 메서드, 프로퍼티 등의 메타 정보를 런타임 중에 알아내는 기능을 제공한다고 한다. 자세한 것은 C# 교과서를 참고하자.
https://www.csharpstudy.com/Practical/Prac-reflection.aspx
.NET Reflection 1 - C# 프로그래밍 배우기 (Learn C# Programming)
.NET Reflection .NET Reflection은 .NET 객체의 클래스 타입, 메서드, 프로퍼티 등의 메타 정보를 런타임 중에 알아내는 기능을 제공한다. 또한, 이러한 메타 정보를 얻은 후, 직접 메서드를 호출하거나 프
www.csharpstudy.com
C#에는 이러한 기능들이 있기만, C++에는 없기에 unreal에서 자체적으로 개발한 것이 UCLASS를 통해 언리얼 클래스임을 나타낸다.
언리얼에도 Naming Convention이 있고, class명인 AActor의 'A'가 그 예 이다.
현재 MyActor라는 클래스로 MyActor1이라는 오브젝트를 생성하고 오른쪽 디테일 창에서 보이듯 StaticMesh를 변경한 상태이다.
오브젝트의 StaticMesh는 변경되었지만, Class는 변경되지 않았는데, Class에서 SM(Static Mesh)을 변경하기위한 코드를 짜보자.
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyActor.h"
#include "Components/StaticMeshComponent.h"
// Sets default values
AMyActor::AMyActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
Mesh = CreateDefaultSubobject<UStaticMeshComponent>((TEXT("MESH")));
ConstructorHelpers::FObjectFinder<UStaticMesh> SM(TEXT(""));
}
// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
위 코드에서 추가한 부분은
ConstructorHelpers::FObjectFinder<UStaticMesh> SM(TEXT(""));
이다. 위 코드에서 TEXT() 부분은 인코딩 과정에서 오류가 나지 않기 위해서 있는 것이라고 하고, 그 안에 string으로 적용할 Static Mesh의 경로를 입력해준다.
입력 후 IDE에서 빌드하거나, 언리얼 엔진에서 컴파일해주면 class의 static mesh가 바뀐 것을 볼 수 있다.
'개발 · 컴퓨터공학' 카테고리의 다른 글
Learning Unreal 4 언리얼 공부일지 - 키보드 입력으로 움직이기 (0) | 2022.01.18 |
---|---|
Learning Unreal 4 언리얼 공부일지 - Log, Debug (0) | 2022.01.17 |
네트워크 프로그래밍 - Address Resolution Protocol (0) | 2021.12.04 |
UNIX - Socket Programming TCP / UDP (0) | 2021.12.03 |
UNIX - Sockets TCP, UDP (0) | 2021.12.02 |