911 words
5 minutes
[UE5/Part1] 4. UObject DOCS

“이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해” 학습 내용을 정리한 강의 노트입니다.
옵시디언에 정리한 마크다운 문서라 블로그 마크다운 양식에 일부 맞지 않을 수 있습니다.

이미 번외에서 다룬 내용이 많아 간략하게 넘어갑니다.

강의 목표#

  • 언리얼 오브젝트의 필요성
  • 언리얼 오브젝트 선언 & 엔진 내부 컴파일 과정

언리얼 오브젝트#

게임 프로그래밍의 특수성#

  • 사용자 : 쾌적한 경험을 위해 최대 성능을 뽑아내야 함
  • 개발자 : 게임의 규모가 커질수록 개발 안정성이 중요함

모덴 객체 지향 설계 원칙#

현재 시점에서 모던하다는 뜻은 아님. 추후 강의에서 더 자세히 다룰 예정

  • SOLID 원칙
  • 후발 언어에서 보완한 새로운 기능
    • 인터페이스 (Interface) : 객체 설계의 틀을 제공하는 추상 클래스
    • 리플렉션 (Reflection) : 런타임에서 객체의 구조를 파악하고 객체에 메타데이터 부여
    • 델리게이트 (Delegate) : 프로그램에서 발생한 이벤트를 다수의 객체에 효과적으로 전달하는데 활용

언리얼 엔진은?#

기존 C++ 언어를 확장해 모던 객체 지향 설계를 가능하도록 만듬

  • 일반 C++ 오브젝트는 : F
    • 저수준의 빠른 처리
  • 언리얼 오브젝트는 : U
    • 콘텐츠 제작 관련 복잡한 설계 구현

언리얼 오브젝트 문서#

언리얼 오브젝트

  • 언리얼에는 게임 오브젝트 처리용 탄탄한 시스템이 있다.
  • 언리얼에서 오브젝트의 베이스 클래스는 UObject
  • UCLASS 매크로를 사용하여 태그를 해주면 UObject 처리 시스템에서 인식

UCLASS 매크로#

  • CDO -> 다음 강의에서 더 자세히 다룰 예정
  • UClass에는 클래스를 정의하는 프로퍼티와 함수 세트가 들어있다.

UObject에 제공되는 함수성

  • 여러가지 매크로로 제공

언리얼 헤더 툴#

UHT (Unreal Header Tool)

  • 컴파일 과정에서 언리얼 오브젝트를 처리하기 위한 특수한 과정들이 들어감 헤더 파일 포맷
  • 언리얼이 가지는 독특한…

오브젝트 업데이트 및 소멸#

  • 현재 단계에서는 자세히 X

언리얼 오브젝트가 가지는 특징#

추후 강의에서 예제를 통해 살펴볼 예정

  • 클래스 기본 객체 (CDO)
  • 리플렉션
  • 인터페이스
  • 향상된 열거형
  • 델리게이트
  • GC
  • 향상된 구조체 (Struct)
  • 직렬화 (Serialization)

실습#

번외편에서 이미 다룬 분석 내용이므로, 간략하게 요약합니다.

  • UHT : 언리얼 헤더 툴이 실행됨
  • 매크로들을 참조해서 언리얼 오브젝트에 관련된 generated.h 파일 같은걸 UHT이 자동으로 생성해줌
  • 그걸 포함해서 완벽한 프로그램이 되는것

정리#

  • 게임이 대형화되면서 성능/유지보수 두가지가 모두 중요해짐
  • 언리얼 엔진은 C++을 확장한 U오브젝트라는 객체 구조를 고안
  • 지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조
  • 언리얼 오브젝트를 사용해 대규모 게임 제작을 안정적으로 설계 및 구현 가능