OnSessionList Updated is not Called
โ Key Question
- why this problem happen ?
โ Expected Output/Definition of Done
- clear problem and solution definition on this issue
๐ Results
UploadINetworkRunnerCallback
Inneed Progressto be registered / added into network runner in order to network runner to execute the callback within photon event flow.
in order to properly attach a runner callback into network runner you need to add itโs callback before expecting the callback to be called.
public class BasicSpawner : MonoBehaviour, INetworkRunnerCallbacks
{
public void OnPlayerJoined(NetworkRunner runner, PlayerRef player) { }
public void OnPlayerLeft(NetworkRunner runner, PlayerRef player) { }
public void OnInput(NetworkRunner runner, NetworkInput input) { }
public void OnInputMissing(NetworkRunner runner, PlayerRef player, NetworkInput input) { }
public void OnShutdown(NetworkRunner runner, ShutdownReason shutdownReason) { }
public void OnConnectedToServer(NetworkRunner runner) { }
public void OnDisconnectedFromServer(NetworkRunner runner) { }
public void OnConnectRequest(NetworkRunner runner, NetworkRunnerCallbackArgs.ConnectRequest request, byte[] token) { }
public void OnConnectFailed(NetworkRunner runner, NetAddress remoteAddress, NetConnectFailedReason reason) { }
public void OnUserSimulationMessage(NetworkRunner runner, SimulationMessagePtr message) { }
public void OnSessionListUpdated(NetworkRunner runner, List<SessionInfo> sessionList) { }
public void OnCustomAuthenticationResponse(NetworkRunner runner, Dictionary<string, object> data) { }
public void OnHostMigration(NetworkRunner runner, HostMigrationToken hostMigrationToken) { }
public void OnReliableDataReceived(NetworkRunner runner, PlayerRef player, ArraySegment<byte> data) { }
public void OnSceneLoadDone(NetworkRunner runner) { }
public void OnSceneLoadStart(NetworkRunner runner) { }
}
// separate script that add the callback into network runner
public class SceneControl : MonoBehaviour
{
public NetworkRunner runner;
public BasicSpawner spawner;
private void Start()
{
// adding callback before expecting callback from runner action
runner.AddCallbacks(spawner);
// doing runner actions
runner.JoinSessionLobby(/* . . . */);
}
}