-
Notifications
You must be signed in to change notification settings - Fork 462
Description
Actual Outcome
A new player prefab would not spawn in.
Expected Outcome
Player should spawn in via network manager.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
- OS: [Windows 10]
- Unity Version: [Unity 6.0 LTS]
- Netcode Version: [2.7.0]
- Netcode Commit: [e.g. https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/commit/ba418fa5b600ad9eb61fab0575f12fbecc2c6520]
- Netcode Topology: [Client-Server]
Additional Context
The full error that came up.
[Netcode] A ConnectionRequestMessage was received from a client when the connection has already been established. NetworkTransport: Unity.Netcode.Transports.UTP.UnityTransport UnityTransportProtocol: UnityTransport. This should not happen. Please report this to the Netcode for GameObjects team at https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues and include the following data: Message Size: 170. Message Content: 02 02 7d 9a e2 a5 21 b2 36 17 b3 11 46 c4 ca 04 01 2a b2 f1 50 01 e9 3a b6 d2 01 39 3b e8 2c 01 ab c9 50 60 01 53 a3 38 44 21 d3 f6 1c b8 01 7f 10 0d af 01 f3 a2 4a 4a 01 a6 22 89 97 01 e9 4e 31 0d 01 b5 fe 01 74 11 be 97 be 73 01 bd 23 d8 d0 01 58 aa fb 1c 01 9d 9a 5c 01 01 e9 51 97 17 01 8a f7 e7 83 01 ee 80 1f c6 01 42 7f 88 c6 01 97 a3 f5 46 01 c2 40 2e a3 01 4e 67 03 d2 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 15 20 0f e8 91 74 be df
UnityEngine.Debug:LogError (object)
Unity.Netcode.NetworkLog:LogError (string) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Logging/NetworkLog.cs:34)
Unity.Netcode.NetworkManagerHooks:OnVerifyCanReceive (ulong,System.Type,Unity.Netcode.FastBufferReader,Unity.Netcode.NetworkContext&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Messaging/NetworkManagerHooks.cs:82)
Unity.Netcode.NetworkMessageManager:CanReceive (ulong,System.Type,Unity.Netcode.FastBufferReader,Unity.Netcode.NetworkContext&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Messaging/NetworkMessageManager.cs:315)
Unity.Netcode.NetworkMessageManager:HandleMessage (Unity.Netcode.NetworkMessageHeader&,Unity.Netcode.FastBufferReader,ulong,single,int) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Messaging/NetworkMessageManager.cs:397)
Unity.Netcode.NetworkMessageManager:ProcessIncomingMessageQueue () (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Messaging/NetworkMessageManager.cs:448)
Unity.Netcode.NetworkManager:NetworkUpdate (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Core/NetworkManager.cs:349)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Core/NetworkUpdateLoop.cs:191)
Unity.Netcode.NetworkUpdateLoop/NetworkEarlyUpdate/<>c:b__0_0 () (at ./Library/PackageCache/com.unity.netcode.gameobjects@bd2a018756ed/Runtime/Core/NetworkUpdateLoop.cs:214)
It only comes up on this RPC, gSpawnedFighter is just a basic character controller. And when I note out the gSpawned fighter spawning bit of the code everything works. I'm a terrible programmer so I wouldnt be shocked if its something of how I declared it.
public void VoidAddPlayerRpc(byte byteCharacter)
{
if ((gPlayer.Count > 0))
{
gPlayer.Clear();
}
var foundPlayer = FindObjectsByType<LocalPlayerController>(FindObjectsSortMode.None);
foreach (var player in foundPlayer)
{
print("Looping character spawn");
if (byteCharacter == 0)
{
break;
}
else if (player.gCurrentFighter == null)
{
//GameObject gSpawnedFighter = VoidSpawnCharacter(byteCharacter, player.GetComponent<LocalPlayerController>());
NetworkObject gSpawnedFighter;
if (byteCharacter == 1)
{
print("Attempting to spawn character");
gSpawnedFighter = NetworkManager.SpawnManager.InstantiateAndSpawn(gSwordBase, player.NetworkObjectId,true,true,false,vPlayer1Spawn,Quaternion.identity);
gSpawnedFighter.GetComponent<NetworkObject>().TrySetParent(player.NetworkObject);
player.GetComponent<LocalPlayerController>().gCurrentFighter = gSpawnedFighter;
}
break;
}
}