EPortfolio Theory

Clear·2024년 10월 21일

EPortfolio

목록 보기
1/1

SetupAttachment 와 AttachToComponent 의 차이.

SetupAttachment 와 AttachToComponent 의 차이.

  • 공통점
    부모 컴포넌트의 자식 계층으로 설정하며, 소켓 이름을 지정한 경우 계층뿐만 아닌 소켓 위치로 원점이 정해진다.
  • 차이점.
    SetupAttachment 와 같은 경우 생성자에서 사용하며 AttachToComponent 는 생성자에서 사용되지 않는다.
    또한 AttachToComponent는 부착 규칙이 존재한다.

호출 순서

SetupInputComponent 는 BeginPlay 보다 먼저 호출된다.

Ehanced Input

https://velog.io/@cle_0324/EnhancedInput

TPointerIsConvertibleFromTo

Unreal Engine의 Template Meta Programming Utility로, 한 PointerType이 다른 PointerType으로 변환 가능한지 확인하는 데 사용되는 구조체입니다.
일반적으로 TPointerIsConvertibleFromTo는 두 가지 Template Argument를 받으며, 첫 번째 argument가 두 번째 argument로 변환될 수 있는지 여부를 판단합니다

Unreal Engine 의 코드 오류 디버깅 및 예외 처리 매크로

  • check
    주어진 조건이 false 일 경우 프로그램을 강제 종료한다.
  • checkf
    check 와 동일하나 실패할 경우 User Custom Message를 함께 출력한다.
  • ensure
    Warning Message를 출력하나 프로그램을 종료하지 않고 코드가 계속 실행된다.

Synchronous Loading & Asynchronous Loading

Synchronous Load
Synchronous Load는 자원을 요청하면 해당 자원이 완전히 로드될 때까지 프로그램의 실행이 멈추는 방식입니다. Loading이 완료되면 그때야 다음 작업을 수행할 수 있습니다.

  • 특징
    • Blocking : 요청한 자원이 로드될 때까지 프로그램이 멈춥니다. 즉, CPU는 해당 작업이 끝날 때까지 기다려야 합니다.
    • 단순함: 구현이 비교적 간단하고 직관적입니다. 자원을 로드한 후에 바로 사용할 수 있기 때문에 상태 관리가 용이합니다.
    • 사용자 경험 저하 : 자원이 로드되는 동안 게임이나 애플리케이션이 멈추거나, "멈춤 현상"이 발생할 수 있어 사용자 경험이 나빠질 수 있습니다.

    • 사용 사례
    • 게임에서 작은 데이터를 즉시 로드해야 하는 경우.
    • 로딩 중 화면 전환을 막고, 로드가 끝난 후 실행을 계속해야 하는 상황.

  • 장점
  • 구현이 간단하고, 데이터 로드가 끝나면 바로 사용할 수 있어 논리적으로 명확합니다.
  • 단점
  • 큰 데이터 고해상도 텍스처나 오브젝트로드 시 게임이 멈추거나 프레임 드랍이 발생할 수 있습니다.
  • 성능 저하의 원인이 될 수 있어 큰 자원 로딩에 적합하지 않습니다.

Asynchronous Load
Asynchronous Load는 자원을 요청한 후, 자원이 완전히 로드될 때까지 기다리지 않고, 프로그램이 다른 작업을 계속할 수 있는 방식입니다. 자원이 로드된 후에 별도의 콜백이나 이벤트를 통해 해당 자원을 사용할 수 있게 됩니다.

  • 특징
    • Non-blocking : 자원이 로드되는 동안에도 프로그램이 계속 실행됩니다. CPU는 로드 작업과 상관없이 다른 작업을 수행할 수 있습니다.
    • 복잡성 : 구현이 조금 더 복잡할 수 있습니다. 로드 완료 여부를 체크하거나, 완료 시점에 처리할 로직을 따로 작성해야 합니다.
    • 사용자 경험 상승 : 로드가 백그라운드에서 이루어지기 때문에 게임이나 프로그램의 흐름이 끊기지 않고, 더 부드러운 사용자 경험을 제공합니다.

  • 사용 사례
    • 게임에서 큰 자원을 로드할 때(예: 새로운 레벨이나 오픈 월드 환경에서 큰 맵을 로드할 때).
    • UI가 계속 동작하면서 백그라운드에서 데이터를 로드해야 할 때.
    • 필요한 자원을 로드하는 동안 플레이어가 게임을 계속할 수 있게 하고, 준비가 되면 해당 자원을 사용하는 경우.

  • 장점
    • 자원 로딩 중에도 프로그램이 계속 실행되어 사용자 경험이 부드럽습니다.
    • 큰 자원이나 많은 자원을 처리할 때도 성능에 영향을 덜 미칩니다.
  • 단점
    • 자원이 언제 로드될지 모르기 때문에 로드 완료 여부를 추적하고, 완료 후 자원을 사용하는 로직을 따로 관리해야 합니다.
    • 코드가 Synchronous Load보다 복잡해질 수 있습니다.

MultiPlayer

https://velog.io/@cle_0324/MultiPlayer

profile
Programmer

0개의 댓글