실행
기본 실행
다음 그림은 단일 유니티 프레임 내에서 KCC가 사용하는 Fusion 콜백의 기본 실행 순서를 나타낸 것입니다.
- (1)은 서버로부터 새로운 데이터를 수신하는 경우에만 실행됩니다.
- (2)는
1-N
개의 포워드 틱을 시뮬레이션할 때 실행됩니다. - (3) 새로운 틱을 시뮬레이션하기에 충분한 델타 타임이 없을 경우 실행합니다.
- (4) 시뮬레이션 보류 중인 재시뮬레이션 또는 포워드 틱이 더 많을 경우 실행합니다.
- (5) 모든 재시뮬레이션 및 전방 틱을 시뮬레이션 한 후 실행합니다.
가능한 시나리오는 다음과 같습니다:
- 서버에서 수신한 새 데이터 = [Y] 재시뮬레이션 틱 = > [X] 정방향 틱 = > 렌더 업데이트입니다.
- 수신된 데이터 없음 = [X] 정방향 틱 = > 렌더 업데이트입니다.
- 데이터가 수신되지 않고 델타 시간이 충분하지 않습니다 = 렌더 업데이트만 가능합니다.
다음 그림은 Fusion 콜백에 대한 자세한 개요와 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