Unreal Basic Inheritance

Clear·2023년 5월 13일
0

Unreal Basic Inheritance

이 장에서는 언리얼의 기본 적인 상속 구조에 대해서 알아보려고 한다.
언리얼의 상속 구조를 알기전 언리얼의 Type 네이밍 규칙에 대해서 설명하고 가려고 한다.

Camel Notation
낙타 모양에서 따온 방법으로 첫글자를 소문자로 시작하여 두번 째 단어부터 대문자로
표현하는 방식을 말한다.
ex ) char camelNotation

Pascal Notation
첫 단어를 대문자로 시작하는 Camel Notation이다.
ex ) char PascalNotation

Snake Notation
_(Under Bar) 를 이용하여 단어와 단어 사이에 _ 로 구분하는 표기법이다.
ex ) char Snake_Notation

Hungarian Notation
변수의 자료형을 접두어로 붙이는 표기법이다.
ex ) char cHungarian Case

언리얼과 같은 경우 Pascal Notation 과 Hungarian Case 을 같이 사용하는 형식이다.
대표적인 ACharacter 와 같은 경우 AActor 를 상속받아 Hungarian Case 의 A 를 붙이며
Pascal 형식의 대문자로 시작하여 ACharacter 와 같은 형식으로 네이밍을 하고 있다.

UObject

Unreal Engine 의 약 6000 개의 Class 가 기반으로 가지고 있는 Class 로
Unreal 의 모든 객체의 기본 클래스라고 생각하면 된다.
UObject 를 기반으로 가진 파생 클래스들은 해당과 같은 기능들을 수행할 수 있다.

  1. CDO (Class Default Object)
  2. Reflection
  3. GC (Garbage Collection)
  4. Serialization
  5. Delegate
  6. Replication
  7. Editor Intergration

위의 7 가지 기능들은 나중에 따로 정리하여 서술할 예정이니
지금은 이러한 기능들을 제공하고 있다라고 생각하자.

UObject 는 Unreal 의 최상의 클래스가 아니다.
UObject 또한 UObjectBaseUtility 그 위의 기반인 UObjectBase
를 상속 받고 있으므로 오해가 생기지 않도록 하자.


AActor : UObject

World 에 배치 될 수 있는 기능을 포함한 UObject 의 파생 클래스이다.

APawn : AActor

Controller 의 입력을 받을 수 있는 AActor 의 파생 클래스이다.
UnPossessed , PossessedBy , GetController 등의 Controller 에 대한 조작을 받을 수 있으며
상호작용이 가능한 기능이 추가된 클래스이다.

ACharacter : APawn

CharacterMovementComponent 를 통한 물리적 이동 컴포넌트가 추가된
APawn 의 파생 클래스 로 CharacterMovementComponent 를 통하여
캐릭터의 움직임을 좀 더 간편하게 제어할 수 있는 클래스이다.


Component

기능들을 나누어 각각의 독립적인 클래스로 분리하는 것으로
한 개체가 여러분야를 커플링 없이 다룰 수 있게 해준다는 장점이 있다.
SOLID 원칙에 따라 요구사항에 대한 대처가 해당 기능을 하고 있는
컴포넌트만 수정하면 되므로 유지보수에 유리한 기능을 가지고 있다.

UActorComponent : UObject

Actor 에 추가할 수 있는 재사용 가능한 기능을 정의하는 기본 클래스이다.

USceneComponent : UActorComponent

ActorComponent 를 기반으로 파생클래스 Rendering 과 관련된 모든
Class 들의 최상위 기반 클래스입니다.


profile
GameProgrammer

0개의 댓글