스크립트 실행 제어
개요
Fusion이 SimulationBehaviour
및 NetworkBehaviour
컴포넌트를 실행하는 상대 스크립트 순서를 제어하는 두 가지 주요 특성이 있습니다:
[OrderBefore]
[OrderAfter]
FixedUpdateNetwork()
및 Render()
와 같은 거의 모든 Fusion 콜백에 영향을 줍니다.
[OrderBefore(typeof(MyOtherSimulationBehaviour)]
[OrderAfter(typeof(NetworkTransform), typeof(MyOtherNetworkBehaviour))]
public class MySimulationBehaviour : SimulationBehaviour {
}
정렬 프로세스
재컴파일 중 및 게임 시작 시 모든 SimulationBehaviours
는 어셈블리에서 찾을 수 있으며 NetworkPhysicsSimulation3D
및 NetworkPhysicsSimulation2D
를 제외한 알파벳순으로 정렬됩니다.
먼저 각 SimulationBehaviour
에서 [OrderBefore]
또는 [OrderAfter]
특성을 확인합니다. 클래스에 둘 다 없는 경우 부모 클래스가 반복적으로 검색되고 이러한 특성 중 하나를 가진 가장 가까운 부모의 속성이 사용됩니다. 그런 다음 모든 SimulationBehaviours
가 정렬되어 모든 OrderBefore
와 OrderAfter
속성을 충족하는 결정론적 순서를 생성합니다.
주의: [OrderBefore]
및 [OrderAfter]
유형을 원하는 수만큼 지정할 수 있습니다. 해결할 수 없는 충돌을 만들면 디버그 로그에 충돌하는 스크립트를 나타내는 오류가 표시됩니다.
NetworkPhysicsSimulation3D
및 NetworkPhysicsSimulation2D
는 처음에는 알파벳으로 분류된 다른 모든 SimulationBehaviours
다음으로 분류됩니다. 이 두 가지 중 하나 이후에 스크립트를 실행하려면 [OrderAfter]
속성을 사용하여 스크립트를 실행하도록 명시적으로 지시해야 합니다.
[OrderAfter(typeof(NetworkPhysicsSimulation3D)]
시뮬레이션 포함
[SimulationBehaviour]
속성을 사용하여 FixedUpdateNetwork()
의 실행을 다음과 같이 제한할 수 있습니다.
- 특정 단계(
Resimulation
또는Forward
)에만 적용됩니다. 및/또는 - 특정 피어 모드(
서버
/호스트
/클라이언트
)를 선택합니다.
[SimulationBehaviour(
Stages = SimulationStages.Forward,
Modes = SimulationModes.Server | SimulationModes.Host
)]
Fusion 스크립트 실행 인스펙터
Fusion 스크립트 순서 창은 Fusion > Windows > Script Execution Inspector
메뉴를 통해 열 수 있습니다. 여기에는 다양한 스크립트가 어떤 순서로 그리고 시뮬레이션 단계에서 실행될지 표시됩니다.
주의: 스크립트 실행은 다음의 속성에 의해 제어됩니다:
[SimulationBehaviour]
[OrderBefore]
[OrderAfter]
Fusion 스크립트 실행 인스펙터
창은 이러한 속성들의 결과를 시각화하는 데만 사용됩니다. 변경하려면 스크립트에서 속성을 변경해야 합니다.