PlanetX Docsv1.0.1
문서 언어: KO최종 감사: 2026-08-23
런타임 통합원문 검증 완료

Level Handoff

이 페이지 받기Markdown

Level Handoff는 서로 다른 World package 사이에서 PlanetX pose와 Journey 상태를 전달합니다. 게임 코드는 레벨 로딩과 Pawn 생성 정책을 계속 소유합니다.

#권장 흐름

PrepareTravel은 Source Actor, Surface Query, 명시적인 FPlanetXTravelRoute에서 Ticket을 만듭니다.

cpp
FPlanetXLevelHandoffTicket Ticket;
FPlanetXLevelHandoffResult Result;
const bool bPrepared = PlanetXSubsystem->PrepareTravel(
    WorldContext, SourceActor, SurfaceQuery, TargetRoute, Ticket, Result);

성공하면 게임이 Ticket.TargetWorld로 이동합니다. 도착 후 한 개의 matching pending ticket만 존재할 때 ResumePendingTravel을 사용하거나, 저장한 Ticket으로 CompleteLevelHandoff를 호출합니다.

#왕복

고급 API는 BeginLevelHandoff → CompleteLevelHandoff → BeginReturnLevelHandoff(JourneyId) → CompleteLevelHandoff 흐름을 제공합니다. PrepareTravel은 명시 route를 사용해 Ground에서 Orbit으로 직접 돌아갈 수도 있습니다.

#안전 규칙

  • matching pending travel이 없으면 PendingTravelNotFound
  • 여러 개면 AmbiguousPendingTravel
  • 오래된 Ticket generation은 StaleGeneration
  • target Planet Binding을 아직 찾지 못하면 Travel Receiver가 timeout 안에서 retry 가능
  • Level Handoff Ground pose는 capture에 저장된 Ground mapping이 authoritative

ResumePendingTravel은 latest ticket을 추측하지 않습니다. 멀티 Travel을 허용하는 프로젝트는 Ticket이나 Journey를 gameplay save state에 함께 관리하세요.

#취소와 진단

미사용 Ticket은 CancelLevelHandoff로 취소합니다. Capture, Journey와 Result error를 로그에 함께 남기고 GetActiveTransitionJourneys로 누수를 확인하세요.