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 |