Netcode for GameObjects is a high-level netcode SDK that provides networking capabilities to GameObject/MonoBehaviour workflows within Unity and sits on top of underlying transport layer.
NGO v2.0.0-pre.2 is released and merged with develop-2.0.0
=or=
We have to make a new NGO v2.0.0-pre.3 in placed of NGO v2.0.0-pre.2
Distributed Authority Network Topology Specific
Synchronizing With Scene Management Disabled:
If scene management was disabled and a late joining client connected, the session owner would still try to synchronize the client which would lead to a "Key not found" exception.
Spawning NetworkObject Before Approved
If a session owner attempted to spawn a NetworkObject immediately upon the initial service connection being established, it would allow you to spawn a NetworkObject that was owned by the service which is not a valid spawned object.
NGO (Any Network Topology)
Spawning NetworkObject Within NetworkBehaviour.OnNetworkSessionSynchronized
If you spawn a NetworkObject within an overridden NetworkBehaviour.OnNetworkSessionSynchronized method, you would get a list changed exception.
NGO v1.x Up-Port
Added support for byte on NetworkVariable through codegen
This is an up-port of #2953
Changelog
Fixed: Issue where internal delta serialization could not have a byte serializer defined when serializing deltas for other types. Added [GenerateSerializationForType(typeof(byte))] to both the NetworkVariable and AnticipatedNetworkVariable classes to assure a byte serializer is defined.
Fixed: Issue when scene management was disabled and the session owner would still try to synchronize a late joining client.
Fixed: Issue when using a distributed authority network topology where it would allow a session owner to spawn a NetworkObject prior to being approved. Now, an error message is logged and the NetworkObject will not be spawned prior to the client being approved.
Fixed: Issue where attempting to spawn during NetworkBehaviour.OnInSceneObjectsSpawned and NetworkBehaviour.OnNetworkSessionSynchronized notifications would throw a collection modified exception.
Testing and Documentation
Includes integration test NetworkObjectSpawning.
No documentation changes or additions were necessary.
NGO v2.0.0-pre.2 Issues Fixed
Cannot be merged until either:
Distributed Authority Network Topology Specific
Synchronizing With Scene Management Disabled:
If scene management was disabled and a late joining client connected, the session owner would still try to synchronize the client which would lead to a "Key not found" exception.
Spawning NetworkObject Before Approved
If a session owner attempted to spawn a NetworkObject immediately upon the initial service connection being established, it would allow you to spawn a NetworkObject that was owned by the service which is not a valid spawned object.
NGO (Any Network Topology)
Spawning NetworkObject Within NetworkBehaviour.OnNetworkSessionSynchronized
If you spawn a
NetworkObject
within an overriddenNetworkBehaviour.OnNetworkSessionSynchronized
method, you would get a list changed exception.NGO v1.x Up-Port
Added support for byte on NetworkVariable through codegen
This is an up-port of #2953
Changelog
[GenerateSerializationForType(typeof(byte))]
to both theNetworkVariable
andAnticipatedNetworkVariable
classes to assure a byte serializer is defined.NetworkObject
prior to being approved. Now, an error message is logged and theNetworkObject
will not be spawned prior to the client being approved.NetworkBehaviour.OnInSceneObjectsSpawned
andNetworkBehaviour.OnNetworkSessionSynchronized
notifications would throw a collection modified exception.Testing and Documentation
NetworkObjectSpawning
.