일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- polymorphism
- 배경 그림
- STCF
- sampling theory
- 유니티
- Frequency Response
- Unity #Indie Game
- AINCAA
- frequency-domain spectrum analysis
- MAC
- convolution
- MLFQ
- pdlc
- DP
- linear difference equation
- 운영체제
- RBAC
- SNR
- link layer
- 유스케이스
- Race condition
- ret2libc
- DSP
- Security
- dirty cow
- stride
- 게임개발
- dtft
- 게임 개발
- 메카님
- Today
- Total
다양한 기록
언리얼 오브젝트 기초 본문
C++의 매크로로 모던 객체 지향 설계가 가능하도록 만듦
C++ 오브젝트 : 접두사 F
언리얼 오브젝트 : 접두사 U
UObject가 언리얼 오브젝트의 베이스 클래스
UCLASS 매크로 사용하면 UObject 시스템에서 인식하게 됨
할당할 때 new가 아니라 newObject<class>() 사용
가비지 컬렉션, 레퍼런스 업데이트 등의 기능을 UObject는 알아서 해줌
후발 언어들의 기능을 매크로로 구현함
언리얼 헤더 툴
언리얼의 매크로, 독특한 헤더 파일을 가짐
언리얼 오브젝트가 가지는 특징
클래스 기본 객체 (CDO) | 클래스의 기본 값과 타입 정보 제공 |
리플랙션 | 런타임에서 클래스 정보의 참조 기능 |
인터페이스 | |
향상된 열거형 | |
델리게이트 | 객체 간의 결합 낮춰줌 |
가비지 컬렉션 | |
향상된 구조체 | 리플렉션이 가능한 구조체의 지원 |
직렬화(Serialization) | 객체 정보를 바이트스트림으로 저장, 전송, 불러들이 |
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "MyObject.generated.h"
/**
*
*/
UCLASS()
class UNREALOBJECT_API UMyObject : public UObject
{
GENERATED_BODY()
};
UNREALOBJECT_API
프로젝트이름_API 로 지정해서 다른 모듈에서 참조할 수 있도록 개방
이거 없으면 다른 모듈에선 참조 못함
제네레이트 바디 -> 바디 매크로 컴파인 -> 바디 매크로 컴바인으로 연결
현재 파일 아이디, _, 라인 정보, GENERATED_BODY 네가지를 묶어 하나의 긴 문자열로 만
generated.h에 커런트 파일 아이디 있음
그리고 generated.h 위쪽 보면 그렇게 만들어진게 정의되어 있음
** 이미지에선 잘렸는데 끝에 GENERATED_BODY 붙어 있음
GENERATED_BODY()는 저 부분을 이용하겠다는 것
이런 부분들이 후발 언어 기능 제공을 위해 자동으로 만들어준다고 봐도 되고,
파일 경로가 상당히 숨겨져있는게 일반적인 상황에선 그냥 건드리지 말라는 뜻
헤더 파일을 고치면 GENERATED_BODY()가 콜되는 라인 주소가 바뀜
-> 헤더 다시 만들어야 해서 에디터 끄고 새로 빌드해야 하는 것
언리얼 헤더 툴이 저거 삭제해도 알아서 만들어줌
언리얼 헤더 툴에 의해 자동으로 생성된 코드를 포함해서 컴파일
'언리얼 엔진 > 언리얼 엔진 : 기초' 카테고리의 다른 글
언리얼 오브젝트 리플렉션 시스템 (0) | 2024.12.18 |
---|---|
언리얼 C++ 코딩 규칙 (0) | 2024.10.30 |