ABOUT ME

Today
Yesterday
Total
  • UE5.0 CPP 01~02
    Study/UnrealEngine 2022. 12. 14. 20:44
    • 빌드 구성
      DebugGame : 최적화 X + 디버깅
      Development : 중간 수준 최적화 + 디버깅
      Shipping : 배포를 위한 최적화
      ~ Editor : Editor 용 DLL 파일 생성
      > Development Editor 설정 기본값

    • CoreMinimal.h | EngineMinimal.h
      CoreMinimal : UE Object가 동작할 수 있는 최소 기능만 선언
      EngineMinimal : 다양한 엔진 기능 클래스 선언
    • generated.h
      Unreal header tool 에 의해 생성되는 파일
      Unreal header tool : 클래스 선언을 분석하고 runtime에 필요한 부가 정보를 파일로 생성

    • UPROPERTY()
      언리얼 객체 지정 매크로
      > UE 은 runtime 에 더 이상 사용하지 않는 객체를 수거함 : Garbage Collection
      > 언리얼 오브젝트로 지정하여 자동 메모리 관리
      > VisibleAnywhere : 속성 편집 가능
      > EditAnywhere : 속성의 데이터 변경 가능
      > Category ="text" : 지정한 카테고리에서 속성 값 관리 - "text" 카테고리 생성

    • UCLASS() : 언리얼 오브젝트 클래스
      > GENERATED_BODY() : 언리얼 오브젝트 클래스 내부에 선언

    • ModulName_API class ~
      다른 모듈에서 해당 객체에 접근 가능하게 하는 키워드
      Windows 에서의 _declspec(dllexport) 와 동일한 키워드
    • CreateDefaultSubobject(FName SubobjectName)
      컴포넌트 생성 함수
      SubobjectName : 컴포넌트를 구분하기 위한 Hash 값 생성에 사용될 문자열, 중복되지 않는 유일한 값을 지정해야 함
      TEXT("string") : 2바이트 문자열 체계를 유지시키기 위해 사용되는 매크로

    • Hot Reload
      언리얼 에디터 실행 중에 사용 중인 모듈을 컴파일 하면, 에디터가 감지하고 기존 모듈을 내리고, 새 모듈로 변경
      기존 모듈 덮어쓰기 X, 기존 모듈 뒤에 넘버링한 파일 생성
    • Live Coding
      엔진 실행 중에 C++ 코드 리빌드 후 바이너리 패치
      - 언리얼 에디터에서 애플리케이션 편집.
      - PIE(Play In Editor)로 애플리케이션을 실행합니다.
      - 디버깅을 위해 편집기에 연결된 애플리케이션의 패키징된 데스크톱 빌드를 실행합니다.
      - UE5 부터 기본적으로 Live Coding 활성화 : 에디터에서 ctrl + alt + f11 로 리빌드
      https://docs.unrealengine.com/5.0/en-US/using-live-coding-to-recompile-unreal-engine-applications-at-runtime/
     

    Live Coding

    Recompile and patch your game's binaries at runtime.

    docs.unrealengine.com

     

    • 객체 이름에 F 접두사가 붙으면 언리얼 오브젝트와 관련 없는 C++ 객체(클래스|구조체)
    • ConstructorHelpers::FObjectFinder<component_type> value(TEXT("uasset_path"));
      C++ 코드에서 애셋 로드
      > UStaticMeshComponent->SetStaticMesh(value.Object);
      > UParticleSystemComponent->SetTemplate(value.Object);
      uasset_path : object_type'folder_name/file_name.asset_name

    Error log

    • error MSB3073 : 프로젝트 경로에 공백이 있는 경우 발생할 수 있음
    • UnrealBuildTool : error : Unable to build while Live Coding is active. Exit the editor and game, or press Ctrl+Alt+F11 if iterating on code in the editor or game
    • UPROPERTY(VisibleAnywhere) : VisibleAnywhere 키워드가 없으면 속성 편집이 불가능 -> 자식 컴포넌트 정보도 확인할 수 없음

    'Study > UnrealEngine' 카테고리의 다른 글

    UE5.0 CPP 03~04  (0) 2023.03.15
    UE5 Summary 01  (0) 2023.03.14
    UE4 Light  (0) 2017.08.01
    UE 기본 용어 Memo  (0) 2017.08.01
    UE4 4.16 Class/Struct/Macro Add  (0) 2017.07.31

    댓글

Designed by Tistory.