Hi all,
I have this StartServer function…
public void StartServer()
{
Debug.Log("Server Started");
NetworkManager.Singleton.OnClientConnectedCallback += NetworkManager_OnClientConnectedCallback;
NetworkManager.Singleton.StartServer();
}
private void NetworkManager_OnClientConnectedCallback(ulong clientId)
{
Debug.Log("ClientId: " + clientId);
playerDataNetworkList.Add(new PlayerData
{
clientId = clientId
});
}
public void StartClient()
{
NetworkManager.Singleton.OnClientConnectedCallback += NetworkManager_Client_OnClientConnectedCallback;
NetworkManager.Singleton.StartClient();
}
And then 2 buttons for a server and player to test with
private void Awake()
{
createGame.onClick.AddListener(() =>
{
MobaGameMultiplayer.Instance.StartServer();
NetworkManager.Singleton.SceneManager.LoadScene("CharacterSelect", LoadSceneMode.Single);
});
joinGame.onClick.AddListener(() =>
{
MobaGameMultiplayer.Instance.StartClient();
});
}
I connect using ParrelSync and have 3 editors open. The first one creates a server and says “Server Started” correctly. Then the next 2 players to join game just get the error:
Here is the full error. Any reaon why the Debug Log ClientId: is not running at all on player connection?
KeyNotFoundException: The given key '-2150' was not present in the dictionary.
System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at <dc753a1061284f8e971ee88ee4826eee>:0)
Unity.Netcode.NetworkSceneManager.GetSceneRelativeInSceneNetworkObject (System.UInt32 globalObjectIdHash, System.Nullable`1[T] networkSceneHandle) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/SceneManagement/NetworkSceneManager.cs:981)
Unity.Netcode.NetworkSpawnManager.CreateLocalNetworkObject (Unity.Netcode.NetworkObject+SceneObject sceneObject) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/Spawning/NetworkSpawnManager.cs:511)
Unity.Netcode.NetworkObject.AddSceneObject (Unity.Netcode.NetworkObject+SceneObject& sceneObject, Unity.Netcode.FastBufferReader reader, Unity.Netcode.NetworkManager networkManager) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/Core/NetworkObject.cs:1842)
Unity.Netcode.SceneEventData.SynchronizeSceneNetworkObjects (Unity.Netcode.NetworkManager networkManager) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/SceneManagement/SceneEventData.cs:933)
Unity.Netcode.NetworkSceneManager.HandleClientSceneEvent (System.UInt32 sceneEventId) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/SceneManagement/NetworkSceneManager.cs:2106)
Unity.Netcode.NetworkSceneManager.ClientLoadedSynchronization (System.UInt32 sceneEventId) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/SceneManagement/NetworkSceneManager.cs:2002)
Unity.Netcode.SceneEventProgress.<SetAsyncOperation>b__37_0 (UnityEngine.AsyncOperation asyncOp2) (at ./Library/PackageCache/com.unity.netcode.gameobjects@1.8.0/Runtime/SceneManagement/SceneEventProgress.cs:270)
UnityEngine.AsyncOperation.InvokeCompletionEvent () (at <6f7018b8b8c149e68c4a65a05ac289be>:0)