Study/UnrealEngine

UE5.0 CPP 03~04

리쥬쥬 2023. 3. 15. 12:46
  • 로깅 환경
    UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자...)
    Editor : 창 - 로그 - 출력 로그 / File : Saved - Logs - .log
    FString : 문자열을 관리하는 기본 클래스, 문자열 정보를 받아오려면 * 연산자 지정 필요
  • Assertions
    엔진 설치 시 옵션에 디버깅을 위한 편집기 기호 추가
    check - 조건 실패 시 크래시 > 에디터 종료 후 재 실행 필요
    ensure - 조건 실패 시 콜스택 생성
    https://docs.unrealengine.com/5.1/ko/asserts-in-unreal-engine/

  • Actor - Event Functions
    PostInitializeComponents : 액터에 할당된 컴포넌트가 세팅 완료 후
    BeginPlay : 게임에 들어갈 때
    Tick : 매 프레임마다
    EndPlay : 게임에서 나올 때

  • Transform, Scale : FVector
  • Rotation : FRotator - 순서대로 Pitch(Y), Yaw(Z), Roll(X)

  • World
    시간을 관리하는 주체, TimerManager, 단위 second
    > GetWorld()->GetTimeSeconds() : 게임 시작으로부터 현재까지의 경과 시간
    > GetWorld()->GetUnpausedTimeSeconds() : 게임 중지 시간을 제외한 경과 시간

  • Movement Components
    - FloatingPawnMovement : 중력 영향X
    - RotatingMovement : 지정 속도로 회전
    - InterpMovement : 지정 위치로 이동
    - ProjectileMovement : 중력 + 포물선 움직임 ex) 발사체(총, 미사일....)

  • ActorComponent : 기능만 제공하는 컴포넌트
  • SceneComponent : 트랜스폼 정보를 필요로 하는 컴포넌트
    SceneComponent --|> ActorComponent, + Transform

  • GamePlay Framework
    • Core Components
      > GameMode - 게임 규칙 관리
      > PlayerController - 폰을 조종
      > Pawn - 플레이어가 조종하는 액터
  • GameMode Setting
    Setting - WorldSetting - GameMode - GameModeOverride - GameModeBase(Class)
  • GamePlay Flow
    • PostLogin() : PlayerController 생성 > Player Pawn 생성 > (PlayerController->Pawn Possess) > Game Start
    • Possess(APawn* aPawn)
      > UE4.22 부터 AController::Possess(APawn* aPawn) final 로 override 불가
      > OnPossess(APawn* aPawn) 로 사용