EmptyActor3

EmptyActorÀÇ StaticMeshÀÇ ¸ÓÅ͸®¾óÀ» ½ÇÇà½Ã º¯°æÇØ º¸ÀÚ.

1. EmptyActorÀÇ StaticMesh¸¦ "MaterialSphere"·Î ÁöÁ¤ ÇÑ´Ù.



2. ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

Çì´õ¿¡ ¸ÞÅ͸®¾ó Æ÷ÀÎÅ͸¦ ¼±¾ð ÇÑ´Ù.
UPROPERTY(EditAnywhere)
class UMaterial* OnMaterial;

»ý¼ºÀÚ¿¡¼­ UMaterialÀ» »ý¼ºÇÑ´Ù.
OnMaterial = CreateDefaultSubobject<UMaterial>(TEXT("OnMaterial"));

BeginPlay¿¡¼­ ¸ÞÅ͸®¾óÀ» Àû¿ëÇÑ´Ù.
»ý¼ºÀÚ¿¡¼­ SetMaterialÀ» ¸ÞÅ͸®¾óÀÌ Á¤»ó ÀûÀ¸·Î Àû¿ëµÇÁö ¾Ê´Â´Ù.
Mesh->SetMaterial(0, OnMaterial);

EmptyActor.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "EmptyActor.generated.h"

UCLASS()
class UI_TEST_API AEmptyActor : public AActor
{
    GENERATED_BODY()
   
public:   
    AEmptyActor(const FObjectInitializer& ObjectInitializer);

protected:
    virtual void BeginPlay() override;

public:   
    virtual void Tick(float DeltaTime) override;

    UPROPERTY(EditAnywhere)
    UStaticMeshComponent* Mesh;

    UPROPERTY(EditAnywhere)
    class UMaterial* OnMaterial;
};

EmptyActor.cpp
#include "EmptyActor.h"
#include "Components/StaticMeshComponent.h"
#pragma optimize( "", off )

AEmptyActor::AEmptyActor(const FObjectInitializer& ObjectInitializer)
    : Super(ObjectInitializer)
{
    PrimaryActorTick.bCanEverTick = true;

    Mesh = CreateDefaultSubobject<UStaticMeshComponent>("MyMesh");
    OnMaterial = CreateDefaultSubobject<UMaterial>(TEXT("OnMaterial"));
}

void AEmptyActor::BeginPlay()
{
    Super::BeginPlay();   
    Mesh->SetMaterial(0, OnMaterial);
}

void AEmptyActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

#pragma optimize( "", on )

3. ¸ÞÅ͸®¾óÀ» ÁöÁ¤ÇÑ´Ù.



½ÇÇà ÇÏ¸é ¸ÓÅ͸®¾óÀÌ Àû¿ë µÈ°Ç º¼¼ö ÀÖ´Ù.

´Ù¿î·Îµå:
EmptyActor.h
EmptyActor.cpp