수정중인 페이지 입니다.

스크립트 실행 제어

개요

Fusion이 SimulationBehaviourNetworkBehaviour 컴포넌트를 실행하는 상대 스크립트 순서를 제어하는 두 가지 주요 특성이 있습니다:

  • [OrderBefore]
  • [OrderAfter]

FixedUpdateNetwork()Render()와 같은 거의 모든 Fusion 콜백에 영향을 줍니다.

[OrderBefore(typeof(MyOtherSimulationBehaviour)]
[OrderAfter(typeof(NetworkTransform), typeof(MyOtherNetworkBehaviour))]
public class MySimulationBehaviour : SimulationBehaviour {

}

메인 화면으로

정렬 프로세스

재컴파일 중 및 게임 시작 시 모든 SimulationBehaviours는 어셈블리에서 찾을 수 있으며 NetworkPhysicsSimulation3DNetworkPhysicsSimulation2D를 제외한 알파벳순으로 정렬됩니다.

먼저 각 SimulationBehaviour에서 [OrderBefore] 또는 [OrderAfter] 특성을 확인합니다. 클래스에 둘 다 없는 경우 부모 클래스가 반복적으로 검색되고 이러한 특성 중 하나를 가진 가장 가까운 부모의 속성이 사용됩니다. 그런 다음 모든 SimulationBehaviours가 정렬되어 모든 OrderBeforeOrderAfter 속성을 충족하는 결정론적 순서를 생성합니다.

주의: [OrderBefore][OrderAfter] 유형을 원하는 수만큼 지정할 수 있습니다. 해결할 수 없는 충돌을 만들면 디버그 로그에 충돌하는 스크립트를 나타내는 오류가 표시됩니다.

NetworkPhysicsSimulation3DNetworkPhysicsSimulation2D 는 처음에는 알파벳으로 분류된 다른 모든 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 스크립트 실행 인스펙터 창은 이러한 속성들의 결과를 시각화하는 데만 사용됩니다. 변경하려면 스크립트에서 속성을 변경해야 합니다.

기술문서 TOP으로 돌아가기