[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 1

2022. 2. 23. 22:15·Game Programming/Unreal

액터의 설계

UPROPERTY

- 언리얼 오프젝트 객체에서는 사용시에 자동으로 메모리를 관리해줌.

 

클래스 이름 접두사

- 액터 클래스에는 A, UObject의 클래스는 U가 붙는다.

 

UCLASS()
class TEST_API AFountain : public AActor
{
    GENERATED_BODY()

public:
    AFountain();
    
protected:
    virtual void BeginPlay() override;
    
    UPROERTY(VisibleAnywhere)
    UStaticMeshComponent *Body;
    
    UPROERTY(VisibleAnywhere)
    UStaticMeshComponent *Water;
};

- 헤더의 클래스부분에서 Body와 Water를 선언해준다.

AFountain::AFountain()
{
    Body = CreateDefalutSubobject<UStaticMeshComponent>(Text("Body"));
    Water = CreateDefalutSubobject<UStaticMeshComponent>(Text("Water"));
    
    RootComponent = Body;
    Water->SetupAttachment(Body);
    
    Water->SetRelativeLocation(FVector(0.0f, 0.0f, 135.0f));
}

- 생성자에서 컴포넌트를 생성하는 용도로 언리얼 엔진은 new가 아닌 CreateDefalutSubobject API라는 특별한 함수를 제공한다.

- CreateDefalutSubobject API에 사용한는 문자열 값은 액터에 속한 컴포넌틀르 구별하기 위한 Hash 값 생성에 사용된다. 따라서 중복되지 않는 유일한 값을 지정해야 한다.

 

- 액터를 대표할 루트 컴포넌트를 지정해야 한다.

- 루트 컴포넌트에 자식 컴포넌트를 SetupAttachment()함수로 만들어준다.

 

- SetRelativeLocation을 이용하여 컴포넌트의 기본 위치 값을 변경할 수 있다.

 

객체 유형과 값 유형

- 값 유형으로 클래스 멤버 변수를 선언하고 UPROPERTY 매크로를 선언해주면 미리 예약된 기본값이 지정된다.

저작자표시 (새창열림)

'Game Programming > Unreal' 카테고리의 다른 글

[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 3  (0) 2022.02.25
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 2  (0) 2022.02.24
fps 각 방향별 다리 방향 애니메이션  (0) 2021.11.30
캐릭터의 회전  (0) 2021.11.22
Unreal 문자열의 추가  (0) 2021.04.07
'Game Programming/Unreal' 카테고리의 다른 글
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 3
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 2
  • fps 각 방향별 다리 방향 애니메이션
  • 캐릭터의 회전
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    dfs
    위클리 챌린지
    백준
    티스토리챌린지
    spring
    c++ 기초 플러스
    Java
    JWT
    JPA
    알고리즘
    오블완
    SpringSecurity
    프로그래머스
    dp
  • hELLO· Designed By정상우.v4.10.0
chanheess
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 1
상단으로

티스토리툴바