본문 바로가기

Unreal/득우짱의 언리얼

Chapter2 액터의 설계

1. 레벨 - 플레이어에게 주어지는 스테이지를 의미

클래스 선언 매크로

클래스 이름 접두사


2. generated.h - 소스 코드를 컴파일 하기 전에 Unreal Header Tool 을 사용해 클래스 선언을 분석하고 언리얼 실행 환경에 필요한 부가 정보를 별도의 파일에 생성한다. 언리얼 헤더 툴에 의해 자동으로 생성되는 부가 파일이 generated.h 파일이다. 


3. 외부 모듈에의 공개 여부 - 윈도우의 DLL 시스템은 DLL 내 클래스 정보를 외부에 공개할지 결정하는 _declspc(dllexport)라는 키워드를 제공한다.

언리얼 엔진에서 이 키워드를 사용하려면 모듈명_API 키워드를 클래스 선언앞에 추가한다. 이 키워드가 없으면 다른 모듈에서 해당 객체에 접근할 수 없다.


4. 언리얼 에디터 실행 중 에디터가 사용하고 있는 모듈을 컴파일하면 언리얼 에디터는 이를 잠지해 기존의 모듈을 내리고 신규 모듈로 바꾸는 작업을 수행한다. 이것이 바로 핫 리로드! 모듈을 컴파일할 때마다 만들어지는 새로운 모듈은 기존 모듈을 덮어 쓰지 않고 기존 모듈의 이름 뒤에 숫자를 붙인 새로운 파일로 생성된다. 에디터를 종료하고 컴파일하면 임시 모듈들은 자동으로 제거된다.



5. 언리얼 값 유형에 UPROPERTY() 를 해주면 0으로 초기화 될것을 보장받는다.


6. 언리얼 엔진에서 사용하는 모든 애셋은 레벨 애셋을 제외하고 모두 uasset이라는 동일한 확장자를 가진다. 외형적으로 동일한 체계에서 관리되지만, 내부적으로는 서로 다른 데이터를 품는다. 


7. 레퍼런스를 복사하면

{오브젝트 타입}'{폴더명}/{파일명}.{애셋명}'

StaticMesh'/Game/InfinityBladeGrassLands/Effects/FX_Meshes/Env/SM_Treasure_Coin.SM_Treasure_Coin'

폴더명/파일명.애셋명 으로 축약가능



ConstructorHelpers::FObjectFinder<UStaticMesh> 한번 들여다 볼꽈?

들어가보면 경로를 이차저차 해서

template<typename T>

inline T* FindOrLoadObject( FString& PathName )

를 사용해서 로드한다.

그리고 마무리로

T* ObjectPtr = LoadObject<T>(NULL, *PathName);

LoadObject를 사용한다.

동기식 로딩이당

http://api.unrealengine.com/KOR/Programming/Assets/ReferencingAssets/index.html



+할일

모듀울?

캐싱관련 분석

CreateDefaultSubObject 분석

uasset 분석