키베이루's diary

언리얼 Chapter 2 본문

언리얼

언리얼 Chapter 2

키베이루 2022. 6. 24. 15:09

액터의 설계

Actor : 월드의 특정 공간에서 자신에게 주어진 역할을 수행하는 물체

레벨 : 플레이어에게 주어지는 스테이지, 레벨을 설계한다 = 스테이지를 조립한다

컴포넌트 : 액터의 규격화된 기능

※액터가 두 개의 스태틱 메시 컴포넌트를 가지기 위해서는 UStaticMeshComponent 클래스 포인터 선언을 해줘야 한다.

Fountain.h 에서 UStaicMeshComponent *Body, UStaicMeshComponent *Water 선언

언리얼에서 객체를 자동으로 관리하도록 만들려면 UPROPERTY()를 사용해야 함

UPROPERTY(VisibleAnywhere) // 객체 자동관리(윈도우에서 컴포넌트 속성을 편집하기 위함)
UStaticMeshComponent* Body;

UPROPERTY(VisibleAnywhere)// 객체 자동관리(윈도우에서 컴포넌트 속성을 편집하기 위함)
UStaticMeshComponent* Water;

이후 선언이 끝나면 정의파일 Fountain.cpp로 이동 -> 액터의 구축

CreateDefaultSubobject 함수를 사용해 컴포넌트를 생성한다.

AFountain::AFountain()
{
 	// 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;
	Body = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("BODY"));
	Water = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("WATER"));
    }

이후 대표를 담당할 컴포넌트로 보조할 컴포넌트의 루트를 지정한다.

RootComponent = Body;
Water->SetupAttachment(Body);

컴포넌트의 위치를 수동으로 설정하지 않도록 SetRelativeLocation을 사용하여 컴포넌트의 기본 위치 값을 설정한다.

RootComponent = Body;
Water->SetupAttachment(Body);
Water->SetRelativeLocation(FVector(0.0f, 0.0f, 135.0f));

조명 기능에는 UPointLightComponent, 이펙트에는 UParticleSystemComponent를 사용한다. 마찬가지로 Body에 상속하고 위치를 설정해준다.

RootComponent = Body;
Water->SetupAttachment(Body);
Light->SetupAttachment(Body);
Splash->SetupAttachment(Body);

Water->SetRelativeLocation(FVector(0.0f, 0.0f, 135.0f));
Light->SetRelativeLocation(FVector(0.0f, 0.0f, 195.0f));
Splash->SetRelativeLocation(FVector(0.0f, 0.0f, 195.0f));

언리얼 엔진에서의 자료형

바이트 : uint8

정수 : int32

실수 : float

문자열 : FString, FName

구조체 : FVector, FRotator, FTransform

언리얼에서 속성의 데이터를 변경하기 위해서는 EditAnywhere를 사용한다.

Fountain.h 에서 선언

UPROPERTY(EditAnywhere,Category=ID)
		int32 ID;

 

'언리얼' 카테고리의 다른 글

언리얼 Chapter 1  (0) 2022.06.22
Comments