Fixed 업데이트 네트워크
개요
FixedUpdateNetwork()
- 약어 FUN()
- 는 한 틱에서 다음 틱으로로 새 상태를 시뮬레이션할 때 호출합니다.
FixedUpdateNetwork()
를 고정된 간격으로 호출합니다. 이러한 간격의 시간 단계는 NetworkProjectConfig
에셋의 Simulation > Tick Rate
에 정의되어 있습니다. 시간 단계는Runner.DeltaTime
속성을 통해 SimulationBehaviour
및 NetworkBehaviour
에서 접근할 수 있습니다. 유니티의 유니티의 Time.deltaTime
속성은 시뮬레이션 로직에서 사용되는 모든 시나리오에서 사용되어야 합니다.
FUN()
메소드는 틱을 올바르게 다시 시뮬레이션하고 클라이언트 간에 상태가 동기화되도록 하기 위해 모든 시뮬레이션 로직을 포함해야 합니다.
시뮬레이션 및 재 시뮬레이션
서버로부터 받은 업데이트(지면 사실)를 기반으로 현재 예측 상태를 다시 시뮬레이션하기 위해 동일한 상태 전환에 대해 FixedUpdateNetwork()
를 여러 번 호출할 수 있습니다. Fusion은 재시뮬레이션을 위해 FixedUpdateNetwork()
를 호출하기 전에 네트워크 상태를 재설정하므로 재시뮬레이션은 [Networked]
속성에 대해 투명합니다.
중요: 일반 로컬 비네트워크 상태 변수(예: 클래스 멤버)는 재설정되지 않고 추가 순방향 상태 진행으로 간주됩니다.
시뮬레이션 틱
FUN()
에서 다음과 같은 시뮬레이션 속성을 사용하여 현재 시뮬레이션 틱이 어떤 상태인지 알 수 있습니다(예:Runner.Simulation.IsResimulation
):
IsResimulation:
FixedUpdateNetwork
내에서 현재 시뮬레이션 중인 틱이 이전에 로컬로 시뮬레이션되었는지 여부 확인IsForward:
FixedUpdateNetwork
내에서 현재 시뮬레이션 중인 틱이 이전에 로컬로 시뮬레이션되지 않았는지 확인IsLastTick: FixedUpdateNetwork 내부의
IsResimulation
/IsForward
와 함께 사용하여 시뮬레이션 중인 현재 틱이 시뮬레이션 루프의 재시뮬레이션 또는 순방향 단계 중 마지막 틱이 맞는지 확인IsFirstTick: FixedUpdateNetwork 내부의
IsResimulation
/IsForward
와 함께 사용하여 현재 시뮬레이션 중인 틱이 시뮬레이션 루프의 재시뮬레이션의 첫 번째 틱인지 아니면 순방향 단계인지 확인합니다.
실행 순서
FixedUpdateNetwork
는 재시뮬레이션과 순방향 루프의 중심에 있습니다. FUN은 [Networked]
상태에 영향을 미치는 모든 게임 플레이 로직이 위치하여 실행되는 장소입니다.
기본적으로 NetworkBehaviours
및 SimulationBehaviours
는 임의로 정렬됩니다. 즉, 이 모든 것에 대해 FUN이 실행되는 순서는 동일한 게임 세션에 참여하는 시뮬레이션마다 다를 수 있습니다. FUN 루프의 일부는 PhysicsEngine
이 Physics 3D
또는 Physics 2D
로 설정된 경우 그것의 "중앙"에서 실행되는 네트워크 물리 시뮬레이션입니다. 따라서 기본적으로 특정 동작은 네트워크 물리학 이전 또는 이후에 FixedUpdateNetwork
메소드가 실행됩니다.
FUN 과 물리
클래스 속성 [OrderedBefore()]
및 [OrderedAfter()]
를 사용하여 특정 다른 유형의 동작 전후에 동작을 명시적으로 정렬할 수 있습니다. 이러한 속성은 또한 이 시뮬레이션에 사용되는 물리 유형을 지정하여 네트워크 물리 이전 또는 이후에 동작을 실행하는 데 사용할 수 있습니다(NetworkPhysics2D
또는 NetworkPhysics3D
) 스크립트 실행 제어에 대한 자세한 내용은 동일한 이름의 페이지를 방문하십시오.