본문 바로가기
Unreal/Manual

Unreal C++ UCameraComponent 컴포넌트 추가

by Dev_카페인 2023. 11. 22.
반응형

[Unreal/C++] UCameraComponent 컴포넌트 추가

 

Camera는 보통 SpringArm과 함께 쓰이기 때문에 추가 했습니다.

USpringArmComponent과 UCameraComponent를 사용하기 위해 헤더를 추가합니다.

 

#include "GameFramework/SpringArmComponent.h"

#include "Camera/CameraComponent.h"

 

CreateDefaultSubobject는 생성자에서 사용이 가능하다.

// actor.h

#pragma once

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

UCLASS()
class CPP_AIMOVE_API AMyActor : public AActor
{
	GENERATED_BODY()

public:
	AMyActor();

public:
	UPROPERTY(VisibleAnywhere)
	class USpringArmComponent* SpringArm;	// class를 앞에 붙여 전방 선언
    
	UPROPERTY(VisibleAnywhere)
	class UCameraComponent* Camera;	// class를 앞에 붙여 전방 선언
};

 

// actor.cpp

#include "MyActor.h"

// Class를 사용하기 위해 헤더를 추가한다.
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"

// CreateDefaultSubobject를 사용하기 위해 생성자에서 작업
AMyActor::AMyActor()
{
	// 생성
	SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
	Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));

	// RootComponent를 부모로 한다.
	SpringArm->SetupAttachment(RootComponent);
	Camera->SetupAttachment(SpringArm);	// 스프링 암에 고정시킨다.

	// Arm의 길이와 Pawn회전을 사용
	SpringArm->TargetArmLength = 500.0f;
	SpringArm->bUsePawnControlRotation = true;
}

 

클래스 기반 블루프린트를 만들어 열어보면

액터에서 500만큼 떨어진 스프링암과 붙어있는 카메라를 확인할 수 있습니다.

반응형