ºó ¾×Å͸¦ ¸¸µç ÈÄ¿¡ ±¸¸¦ Ãâ·Â Çغ¸ÀÚ.
1. ºó ¾×ÅÍ »ý¼º
¾ð¸®¾ó ¿¡µðÅÍ¿¡¼ Actor¸¦ »ó¼ÓÇÏ¿© EmptyActor¸¦ »ý¼ºÇÑ´Ù.
EmptyActor.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;
};
EmptyActor.cpp ÆÄÀÏ
#include "EmptyActor.h"
AEmptyActor::AEmptyActor(const FObjectInitializer&
ObjectInitializer)
: Super(ObjectInitializer)
{
PrimaryActorTick.bCanEverTick = true;
}
void AEmptyActor::BeginPlay()
{
Super::BeginPlay();
}
void AEmptyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
2. °ÔÀÓ¸ðµå¿¡¼ ½ºÆÇ
AGameModeBase¸¦ »ó¼ÓÇÑ Aui_testGameModeBase::StartPlay¿¡¼ ½ºÆÇ ½ÃŲ´Ù.
#include "ui_testGameModeBase.h"
#include "EmptyActor.h"
void Aui_testGameModeBase::StartPlay()
{
Super::StartPlay();
FTransform SpawnLocation;
SpawnLocation.SetTranslation({-150.0f, 0.0f,
100.0f});
AEmptyActor* pActor =
GetWorld()->SpawnActor<AEmptyActor>(AEmptyActor::StaticClass(),
SpawnLocation);
}
3. ÄÄÆ÷³ÍÆ® Ãß°¡
USceneComponent
¾À ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ ÇÑ´Ù.
±âº» ÄÄÆ÷³ÍÆ®·Î Ãß°¡ ÇÑ´Ù.
3°³ÀÇ ±¸¸¦ Àû¿ëÇÑ´Ù.
USphereComponent
Ãæµ¹ ÄÄÆ÷³ÍÆ®¸¦ Àû¿ë ÇÑ´Ù.
ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀº
#include "Components/SphereComponent.h"
UStaticMeshComponent
±¸ ¸Þ½Ã¸¦ Ãâ·Â ÇÑ´Ù.
ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀº
#include "Components/StaticMeshComponent.h"
DrawDebugSphere ÇÔ¼ö
µð¹ö±ë¿ë ±¸¸¦ Ãâ·Â ÇÑ´Ù.
ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀº
#include "Components/DrawDebugHelpers.h"
EmptyActor.cpp ÆÄÀÏ
#include "EmptyActor.h"
#include "Components/SphereComponent.h"
#include "Components/StaticMeshComponent.h"
#include "DrawDebugHelpers.h"
......
AEmptyActor::AEmptyActor(const FObjectInitializer&
ObjectInitializer)
: Super(ObjectInitializer)
{
PrimaryActorTick.bCanEverTick = true;
//¾À ÄÄÆ÷³ÍÆ® Ãß°¡
USceneComponent* SceneComponent =
ObjectInitializer.CreateDefaultSubobject<USceneComponent>(this,
TEXT("RootComponent"));
SceneComponent->SetMobility(EComponentMobility::Movable);
SetRootComponent(SceneComponent);
//±¸ Ãæµ¹ ÄÄÆ÷³ÍÆ®
USphereComponent* SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComponent"));
SphereComponent->InitSphereRadius(10.0f);
SphereComponent->SetCollisionProfileName(TEXT("Pawn"));
SphereComponent->SetupAttachment(RootComponent);
//±¸½ºÅÂƽ ¸Þ½Ã ÄÄÆ÷³ÍÆ®
UStaticMeshComponent* MeshComponent =
CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComponent"));
MeshComponent->SetupAttachment(GetRootComponent());
static
ConstructorHelpers::FObjectFinder<UStaticMesh>
MeshComponentAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
if (MeshComponentAsset.Succeeded())
{
MeshComponent->SetStaticMesh(MeshComponentAsset.Object);
MeshComponent->SetRelativeLocation({ 0.f,0.f, 0.f }); MeshComponent->SetWorldScale3D(FVector(10.0f*1.0f/50.0f))
}
}
void AEmptyActor::BeginPlay()
{
Super::BeginPlay();
UWorld* World = GetWorld();
if (World)
{
float Radius = 10.0f;
FVector Center =
GetActorLocation();
DrawDebugSphere(World, Center,
Radius, 16, FColor(181, 0, 0), true, -1, 0, 1.0f);
}
}
void AEmptyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
½ÇÇàȸéÀº ´ÙÀ½°ú °°´Ù.
DrawDebugSphere ŹÀÚ ¾Æ·¡¿¡ Á¶±×¸Ä°Ô º¸ÀÌ´Â ¿øÀÌ´Ù.
UStaticMeshComponent ±¸ÀÇ ¹ÝÁö¸§Àº 50ÀÌ´Ù.
¿øÇÏ´Â Radius·Î ¼³Á¤Çϱâ À§Çؼ´Â 1/50À» °öÇØÁØ´Ù.
MeshComponent->SetWorldScale3D(FVector(10.0f*1.0f/50.0f))
´Ù¿î·Îµå:
EmptyActor.h
EmptyActor.cpp
|