Open
Description
Description
In host mode, spawning a NetworkObject
with DontDestroyWithOwner = true
and SpawnWithObservers = false
, while NetworkManager's
log level is set to Developer shows the following warnings when the client disconnects:
[Netcode-Server Sender=0] [Invalid Owner] Cannot send Ownership change as client-0 cannot see Test Object(Clone)! Use NetworkShow first.
[Netcode] Trying to send ClientDisconnectedMessage to client 0 which is not in a connected state.
Reproduce Steps
Create a new scene.
Setup NetworkManager.
Attach the GameManager script below to some object.
Create some sample NetworkObject.
Set the references of GameManager.
Build project.
In editor, press S to start server and spawn sample NetworkObject.
In built app, press C to start client.
In editor, press T to trigger change ownership.
In built app, press C to disconnect.
In editor, the warnings are logged.
GameManager script:
using Unity.Netcode;
using UnityEngine;
public class GameManager : MonoBehaviour {
[SerializeField] private NetworkManager networkManager;
[SerializeField] private NetworkObject testObject;
private NetworkObject testInstance;
private void Update() {
if (Input.GetKeyDown(KeyCode.S)) {
networkManager.StartHost();
testInstance = Instantiate(testObject);
testInstance.SpawnWithObservers = false;
testInstance.DontDestroyWithOwner = true;
testInstance.Spawn();
}
if (Input.GetKeyDown(KeyCode.C)) {
if (networkManager.IsServer || networkManager.IsClient) {
networkManager.Shutdown();
} else {
networkManager.StartClient();
}
}
if (Input.GetKeyDown(KeyCode.T)) {
testInstance.NetworkShow(1);
testInstance.ChangeOwnership(1);
}
}
}
Actual Outcome
[Netcode-Server Sender=0] [Invalid Owner] Cannot send Ownership change as client-0 cannot see Test Object(Clone)! Use NetworkShow first.
UnityEngine.Debug:LogWarning (object)
Unity.Netcode.NetworkLog:LogWarningServerLocal (string,ulong) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Logging/NetworkLog.cs:128)
Unity.Netcode.NetworkLog:LogServer (string,Unity.Netcode.NetworkLog/LogType) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Logging/NetworkLog.cs:84)
Unity.Netcode.NetworkLog:LogWarningServer (string) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Logging/NetworkLog.cs:52)
Unity.Netcode.NetworkSpawnManager:ChangeOwnership (Unity.Netcode.NetworkObject,ulong,bool,bool) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Spawning/NetworkSpawnManager.cs:537)
Unity.Netcode.NetworkSpawnManager:RemoveOwnership (Unity.Netcode.NetworkObject) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Spawning/NetworkSpawnManager.cs:427)
Unity.Netcode.NetworkObject:RemoveOwnership () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkObject.cs:1980)
Unity.Netcode.NetworkConnectionManager:OnClientDisconnectFromServer (ulong) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:1294)
Unity.Netcode.NetworkConnectionManager:DisconnectEventHandler (ulong) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:549)
Unity.Netcode.NetworkConnectionManager:HandleNetworkEvent (Unity.Netcode.NetworkEvent,ulong,System.ArraySegment`1<byte>,single) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:445)
Unity.Netcode.NetworkTransport:InvokeOnTransportEvent (Unity.Netcode.NetworkEvent,ulong,System.ArraySegment`1<byte>,single) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/NetworkTransport.cs:53)
Unity.Netcode.Transports.UTP.UnityTransport:ProcessEvent () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/UTP/UnityTransport.cs:930)
Unity.Netcode.Transports.UTP.UnityTransport:OnEarlyUpdate () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/UTP/UnityTransport.cs:972)
Unity.Netcode.NetworkTransport:EarlyUpdate () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/NetworkTransport.cs:131)
Unity.Netcode.NetworkManager:NetworkUpdate (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkManager.cs:332)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkUpdateLoop.cs:191)
Unity.Netcode.NetworkUpdateLoop/NetworkEarlyUpdate/<>c:<CreateLoopSystem>b__0_0 () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkUpdateLoop.cs:214)
[Netcode] Trying to send ClientDisconnectedMessage to client 0 which is not in a connected state.
UnityEngine.Debug:LogWarning (object)
Unity.Netcode.NetworkLog:LogWarning (string) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Logging/NetworkLog.cs:28)
Unity.Netcode.NetworkMessageManager:GetMessageVersion (System.Type,ulong,bool) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Messaging/NetworkMessageManager.cs:522)
Unity.Netcode.NetworkMessageManager:SendMessage<Unity.Netcode.ClientDisconnectedMessage, System.Collections.Generic.List`1<ulong>> (Unity.Netcode.ClientDisconnectedMessage&,Unity.Netcode.NetworkDelivery,System.Collections.Generic.List`1<ulong>&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Messaging/NetworkMessageManager.cs:603)
Unity.Netcode.NetworkConnectionManager:OnClientDisconnectFromServer (ulong) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:1315)
Unity.Netcode.NetworkConnectionManager:DisconnectEventHandler (ulong) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:549)
Unity.Netcode.NetworkConnectionManager:HandleNetworkEvent (Unity.Netcode.NetworkEvent,ulong,System.ArraySegment`1<byte>,single) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Connection/NetworkConnectionManager.cs:445)
Unity.Netcode.NetworkTransport:InvokeOnTransportEvent (Unity.Netcode.NetworkEvent,ulong,System.ArraySegment`1<byte>,single) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/NetworkTransport.cs:53)
Unity.Netcode.Transports.UTP.UnityTransport:ProcessEvent () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/UTP/UnityTransport.cs:930)
Unity.Netcode.Transports.UTP.UnityTransport:OnEarlyUpdate () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/UTP/UnityTransport.cs:972)
Unity.Netcode.NetworkTransport:EarlyUpdate () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Transports/NetworkTransport.cs:131)
Unity.Netcode.NetworkManager:NetworkUpdate (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkManager.cs:332)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage (Unity.Netcode.NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkUpdateLoop.cs:191)
Unity.Netcode.NetworkUpdateLoop/NetworkEarlyUpdate/<>c:<CreateLoopSystem>b__0_0 () (at ./Library/PackageCache/com.unity.netcode.gameobjects@4b084d75a42e/Runtime/Core/NetworkUpdateLoop.cs:214)
Environment
- Unity Version: 6000.0.41f1
- Netcode Version: 2.4.2