네트워크 콜백
소개
Fusion은 후킹 할 수 있는 다양한 콜백을 제공하며, 이러한 콜백은 시뮬레이션의 특정 부분에 접근하고 중요한 이벤트를 수신하는 데 유용합니다.
INetworkRunnerCallbacks
NetworkRunner
는 INetworkRunnerCallbacks
인터페이스를 구현하고 NetworkRunner.AddCallbacks()
을 호출하여 스크립트를 러너에 등록함으로써 애플리케이션이 중요한 네트워크 관련 이벤트를 후크 할 수 있도록 합니다.
노트: NetworkRunner
는 INetworkRunnerCallback
를 가지고 있는 동일한 GameObject 그리고 동일한 계층 레벨에 있는 모든 컴포넌트를 자동으로 등록합니다. INetworkRunnerCallbacks
의 모든 다른 인스턴스는 NetworkRunner.AddCallbacks()
의 사용이 필요합니다.
메소드 | 리턴 | 추가 정보 |
---|---|---|
OnPlayerJoined | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. PlayerRef player: 참여한 플레이어의 PlayerRef. |
새로운 플레이어가 참여하면 NetworkRunner의 콜백. 보통 새로운 플레이어의 아바타를 만드는 데 사용됩니다. |
OnPlayerLeft | NetworkRunner runner: T로컬 플레이어 NetworkRunner 참조. PlayerRef player: 떠나는 플레이어의 PlayerRef. |
플레이어 연결이 끊겼을 때 NetworkRunner에서 콜백. 일반적으로 플레이어 아바타를 없애는 데 사용됩니다. |
OnInput | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. NetworkInput input: 폴링 된 입력을 보내는 데 사용되는 네트워크 입력 구조체. |
사용자 입력을 위해 폴링 하는 NetworkRunner의 콜백. NetworkInput은 다음의 지원이 예상됩니다.: input.Set(new CustomINetworkInput() { /* your values */ }); |
OnInputMissing | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. NetworkInput input: 폴링 된 입력 전송을 위해 사용되는 NetworkInput 구조체. |
호스트가 특정 틱에 있는 특정 플레이어로부터 입력을 받을 수 없는 경우 호스트에서 콜백이 호출됩니다. 제공된 NetworkInput을 사용하여 대체 입력을 생성할 수 있습니다. |
OnShutdown | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. ShutdownReason shutdownReason: 열거형 형태로 구성되어 있는 셧다운 원인. |
로컬 러너가 셧다운 되었을 떄 호출됨. |
OnConnectedToServer | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. | NetworkRunner가 서버 또는 호스트에 성공적으로 연결되었을 때 콜백. |
OnDisconnectedFromServer | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. | NetworkRunner가 서버 또는 호스트에 연결 해제되었을 때 콜백. |
OnConnectRequest | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. NetworkRunnerCallbackArgs.ConnectRequest request: 원격 클라이언트에서 보낸 연결 요청의 데이터 소유자입니다. byte[] token: 클라이언트가 제공하는 사용자 지정 연결 토큰. |
NetworkRunner가 원격 클라이언트로부터 연결 요청을 수신할 때 콜백. |
OnConnectFailed | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. NetAddress remoteAddress: IP 및 포트를 포함하는 네트워크 주소를 나타냅니다. 여기에는 IPv4 또는 IPv6 주소가 포함될 수 있습니다. NetConnectFailedReason reason: 열거형 형태로 연결이 실해한 원인 |
NetworkRunner가 서버 또는 호스트 연결이 실패했을 때 콜백. |
OnUserSimulationMessage | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. SimulationMessagePtr message: 수신한 시뮬레이션 메시지의 포인터 |
이 콜백은 원격 피어에서 수동으로 발송된 시뮬레이션 메시지를 수신할 때 호출됩니다. |
OnSessionListUpdated | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. List< SessionInfo > sessionList: 수신한 SessionInfo 목록. |
이 콜백은 Photon Cloud에서 새 세션 목록을 수신할 때 호출됩니다. |
OnCustomAuthenticationResponse | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. Dictionary< string, object > data: 사용자 지정 인증 응답 값. |
인증 절차가 인증 서버의 응답을 반환할 때 콜백이 호출됩니다. |
OnHostMigration | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. HostMigrationToken hostMigrationToken: 호스트 마이그레이션이 완료된 후 Fusion Runner를 다시 시작하는 데 필요한 모든 정보가 포함된 임시 홀더. |
콜백은 호스트 마이그레이션 프로세스가 시작되면 호출됩니다. |
OnReliableDataReceived | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. PlayerRef player: 데이터를 전송한 플레이어. ArraySegment< byte > data: 수신한 데이터. |
신뢰할 수 있는 데이터가 수신되면 호출됩니다. 예를 들어 텍스처와 같은 보다 강력한 데이터를 전송하는 데 사용할 수 있습니다. 주의해서 사용해야 합니다. |
OnSceneLoadDone | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. | 씬 로드 프로세스가 완료되면 NetworkSceneManagerBase에서 호출됩니다. StartGameArgs.SceneManager에 제공할 사용자 지정 항목을 구현하는 경우에 이 콜백을 수동으로 호출해야 합니다. |
OnSceneLoadStart | NetworkRunner runner: 로컬 플레이어 NetworkRunner 참조. | 씬 로드 프로세스가 시작될 때 NetworkSceneManagerBase에서 호출됩니다. StartGameArgs.SceneManager에 제공할 사용자 지정 항목을 구현하는 경우에 이 콜백을 수동으로 호출해야 합니다. |
콜백 실행 순서
시뮬레이션의 각 부분에 대한 구체적인 콜백이 많이 있습니다. 이 사항들은 실행 순서 페이지에 쇼케이스로 나타나있습니다. 다음은 여기서 언급할 가치가 있는 몇 가지 선택 사항입니다.
IBeforeAllTicks/IAfterAllTicks
이러한 인터페이스는BeforeAllTicks(bool resimulation, int tickCount)
및 AfterAllTicks(bool resimulation, int tickCount)
에 접근하는 데 사용됩니다. 이러한 호출은 리시뮬레이션 루프(해당하는 경우) 이전과 포워드 시뮬레이션 루프 이전에도 호출됩니다. 리시뮬레이션 또는 포워드 틱이 처리되는 업데이트에서만 호출됩니다.
resimulation
부울은 리시뮬레이션 전에 실행될 때 true이고 포워드 틱 전에 호출될 때 false입니다.
tickCount
는 처리될 틱 수를 제공합니다.
IBeforeTick/IAfterTick
위 사항과 유사하지만, 각 틱에 대해 실행됩니다.