This document is about: FUSION 2
SWITCH TO

실행

기본 실행

다음 그림은 단일 유니티 프레임 내에서 KCC가 사용하는 Fusion 콜백의 기본 실행 순서를 나타낸 것입니다.

kcc 실행 흐름
KCC 실행 흐름.
  • (1)은 서버로부터 새로운 데이터를 수신하는 경우에만 실행됩니다.
  • (2)는 1-N개의 포워드 틱을 시뮬레이션할 때 실행됩니다.
  • (3) 새로운 틱을 시뮬레이션하기에 충분한 델타 타임이 없을 경우 실행합니다.
  • (4) 시뮬레이션 보류 중인 재시뮬레이션 또는 포워드 틱이 더 많을 경우 실행합니다.
  • (5) 모든 재시뮬레이션 및 전방 틱을 시뮬레이션 한 후 실행합니다.

가능한 시나리오는 다음과 같습니다:

  1. 서버에서 수신한 새 데이터 = [Y] 재시뮬레이션 틱 = > [X] 정방향 틱 = > 렌더 업데이트입니다.
  2. 수신된 데이터 없음 = [X] 정방향 틱 = > 렌더 업데이트입니다.
  3. 데이터가 수신되지 않고 델타 시간이 충분하지 않습니다 = 렌더 업데이트만 가능합니다.

다음 그림은 Fusion 콜백에 대한 자세한 개요와 KCC 내부 로직의 실행을 보여줍니다.

kcc 실행의 상세 개요
KCC 실행의 상세 개요.

⚠️ 일부 작업은 입력/상태 권한 또는 프록시에만 유효합니다. 예를 들어 프록시는 네트워크 버퍼에 기록하지 않습니다.

Move 서브루틴의 실행은 KCC 설정 섹션의 입력 권한 동작, 상태 권한 동작프록시 동작에 의해 정의됩니다.

입력 권한 동작 고정 업데이트 렌더 업데이트
예측 고정 | 인터폴레이션 렌더 이동 (예측) 이동 (인터폴레이션)
예측 고정 | 예측 렌더 이동 (예측) 이동 (예측)
상태 권한 동작 고정 업데이트 렌더 업데이트
예측 고정 | 인터폴레이션 렌더 이동 (예측) 이동 (인터폴레이션)
예측 고정 | 예측 렌더 이동 (예측) 이동 (예측)
프록시 동작 고정 업데이트 렌더 업데이트
스킵 고정 | 인터폴레이션 렌더 없음 서버 인터폴레이션 스냅샷
인터폴레이션 고정 | 인터폴레이션 렌더 서버 스냅샷 인터폴레이션 서버 스냅샷 인터폴레이션
예측 고정 | 인터폴레이션 렌더 이동 (예측) 이동 (인터폴레이션)
예측 고정 | 예측 렌더 이동 (예측) 이동 (예측)

수동 실행

기본적으로 KCC 고정/렌더 업데이트는 지연 보상을 지원하기 위해 HitboxManager 이전에 실행됩니다.

정확한 실행 순서 제어를 위해 수동 실행을 활성화할 수 있습니다:

C#

public class Player : NetworkBehaviour
{
    public KCC KCC;

    public override void Spawned()
    {
        KCC.SetManualUpdate(true);
    }

    public override void FixedUpdateNetwork()
    {
        KCC.ManualFixedUpdate();
    }

    public override void Render()
    {
        KCC.ManualRenderUpdate();
    }
}
Back to top