Skip to content

Commit 851c604

Browse files
committed
chore: Updating collections and UTP (#1451)
* chore: Updating collections and UTP
1 parent 7f60010 commit 851c604

File tree

6 files changed

+63
-34
lines changed

6 files changed

+63
-34
lines changed

com.unity.netcode.adapter.utp/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ All notable changes to this package will be documented in this file. The format
66
### Changed
77

88
- Removed 'Maximum Packet Size' configuration field in the inspector. This would cause confusion since the maximum packet size is in effect always the MTU (1400 bytes on most platforms).
9+
- Updated com.unity.transport to 1.0.0-pre.8
10+
911

1012
### Fixed
1113

com.unity.netcode.adapter.utp/Runtime/UnityTransport.cs

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public static implicit operator ConnectionAddressData(NetworkEndPoint d) =>
136136

137137
private State m_State = State.Disconnected;
138138
private NetworkDriver m_Driver;
139-
private List<INetworkParameter> m_NetworkParameters;
139+
private NetworkSettings m_NetworkSettings;
140140
private byte[] m_MessageBuffer;
141141
private NetworkConnection m_ServerConnection;
142142
private ulong m_ServerClientId;
@@ -240,7 +240,7 @@ private bool ClientBindAndConnect()
240240
return false;
241241
}
242242

243-
m_NetworkParameters.Add(new RelayNetworkParameter { ServerData = m_RelayServerData });
243+
m_NetworkSettings.WithRelayParameters(ref m_RelayServerData);
244244
}
245245
else
246246
{
@@ -394,7 +394,7 @@ private bool StartRelayServer()
394394
}
395395
else
396396
{
397-
m_NetworkParameters.Add(new RelayNetworkParameter { ServerData = m_RelayServerData });
397+
m_NetworkSettings.WithRelayParameters(ref m_RelayServerData);
398398
return ServerBindAndListen(NetworkEndPoint.AnyIpv4);
399399
}
400400
}
@@ -597,21 +597,20 @@ public override void Initialize()
597597
Debug.Assert(sizeof(ulong) == UnsafeUtility.SizeOf<NetworkConnection>(),
598598
"Netcode connection id size does not match UTP connection id size");
599599

600-
m_NetworkParameters = new List<INetworkParameter>();
600+
m_NetworkSettings = new NetworkSettings(Allocator.Persistent);
601601

602602
// If the user sends a message of exactly m_SendQueueBatchSize length, we'll need an
603603
// extra byte to mark it as non-batched and 4 bytes for its length. If the user fills
604604
// up the send queue to its capacity (batched messages total m_SendQueueBatchSize), we
605605
// still need one extra byte to mark the payload as batched.
606606
var fragmentationCapacity = m_SendQueueBatchSize + 1 + 4;
607-
m_NetworkParameters.Add(new FragmentationUtility.Parameters() { PayloadCapacity = fragmentationCapacity });
608607

609-
m_NetworkParameters.Add(new BaselibNetworkParameter()
610-
{
611-
maximumPayloadSize = 2000, // Default value in UTP.
612-
receiveQueueCapacity = m_MaxPacketQueueSize,
613-
sendQueueCapacity = m_MaxPacketQueueSize
614-
});
608+
m_NetworkSettings
609+
.WithFragmentationStageParameters(payloadCapacity: fragmentationCapacity)
610+
.WithBaselibNetworkInterfaceParameters(
611+
maximumPayloadSize: 2000,
612+
receiveQueueCapacity: m_MaxPacketQueueSize,
613+
sendQueueCapacity: m_MaxPacketQueueSize);
615614
}
616615

617616
public override NetcodeNetworkEvent PollEvent(out ulong clientId, out ArraySegment<byte> payload, out float receiveTime)
@@ -774,13 +773,16 @@ public override void Shutdown()
774773
return;
775774
}
776775

776+
777777
// Flush the driver's internal send queue. If we're shutting down because the
778778
// NetworkManager is shutting down, it probably has disconnected some peer(s)
779779
// in the process and we want to get these disconnect messages on the wire.
780780
m_Driver.ScheduleFlushSend(default).Complete();
781781

782782
DisposeDriver();
783783

784+
m_NetworkSettings.Dispose();
785+
784786
foreach (var queue in m_SendQueue.Values)
785787
{
786788
queue.Dispose();
@@ -795,31 +797,23 @@ public override void Shutdown()
795797

796798
public void CreateDriver(UnityTransport transport, out NetworkDriver driver, out NetworkPipeline unreliableSequencedPipeline, out NetworkPipeline reliableSequencedFragmentedPipeline)
797799
{
798-
var netParams = new NetworkConfigParameter
799-
{
800-
maxConnectAttempts = transport.m_MaxConnectAttempts,
801-
connectTimeoutMS = transport.m_ConnectTimeoutMS,
802-
disconnectTimeoutMS = transport.m_DisconnectTimeoutMS,
803-
heartbeatTimeoutMS = transport.m_HeartbeatTimeoutMS,
804-
maxFrameTimeMS = 0
805-
};
800+
var maxFrameTimeMS = 0;
806801

807802
#if UNITY_EDITOR || DEVELOPMENT_BUILD
808-
netParams.maxFrameTimeMS = 100;
803+
maxFrameTimeMS = 100;
809804

810805
var simulatorParams = ClientSimulatorParameters;
811-
transport.m_NetworkParameters.Insert(0, simulatorParams);
812-
#endif
813-
transport.m_NetworkParameters.Insert(0, netParams);
814806

815-
if (transport.m_NetworkParameters.Count > 0)
816-
{
817-
driver = NetworkDriver.Create(transport.m_NetworkParameters.ToArray());
818-
}
819-
else
820-
{
821-
driver = NetworkDriver.Create();
822-
}
807+
m_NetworkSettings.AddRawParameterStruct(ref simulatorParams);
808+
#endif
809+
m_NetworkSettings.WithNetworkConfigParameters(
810+
maxConnectAttempts: transport.m_MaxConnectAttempts,
811+
connectTimeoutMS: transport.m_ConnectTimeoutMS,
812+
disconnectTimeoutMS: transport.m_DisconnectTimeoutMS,
813+
heartbeatTimeoutMS: transport.m_HeartbeatTimeoutMS,
814+
maxFrameTimeMS: maxFrameTimeMS);
815+
816+
driver = NetworkDriver.Create(m_NetworkSettings);
823817
#if UNITY_EDITOR || DEVELOPMENT_BUILD
824818
if (simulatorParams.PacketDelayMs > 0 || simulatorParams.PacketDropInterval > 0)
825819
{

com.unity.netcode.adapter.utp/Tests/Runtime/Helpers/DriverClient.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,15 @@ public class DriverClient : MonoBehaviour
3535

3636
private void Awake()
3737
{
38+
3839
var maxCap = UnityTransport.InitialBatchQueueSize + 128;
40+
41+
var settings = new NetworkSettings();
42+
settings.WithFragmentationStageParameters(payloadCapacity: maxCap);
43+
3944
var fragParams = new FragmentationUtility.Parameters() { PayloadCapacity = maxCap };
4045

41-
m_Driver = NetworkDriver.Create(fragParams);
46+
m_Driver = NetworkDriver.Create(settings);
4247

4348
m_UnreliableSequencedPipeline = m_Driver.CreatePipeline(typeof(UnreliableSequencedPipelineStage));
4449
m_ReliableSequencedPipeline = m_Driver.CreatePipeline(typeof(ReliableSequencedPipelineStage));

com.unity.netcode.adapter.utp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
"unity": "2020.3",
77
"dependencies": {
88
"com.unity.netcode.gameobjects": "1.0.0-pre.3",
9-
"com.unity.transport": "1.0.0-pre.7"
9+
"com.unity.transport": "1.0.0-pre.8"
1010
}
1111
}

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66

77
Additional documentation and release notes are available at [Multiplayer Documentation](https://docs-multiplayer.unity3d.com).
88

9+
## [Unreleased]
10+
11+
### Added
12+
13+
### Removed
14+
15+
- Removed `FixedQueue` (#1398)
16+
- Removed `StreamExtensions` (#1398)
17+
- Removed `TypeExtensions` (#1398)
18+
19+
### Fixed
20+
21+
- Fixed in-scene NetworkObjects that are moved into the DDOL scene not getting restored to their original active state (enabled/disabled) after a full scene transition (#1354)
22+
- Fixed invalid IL code being generated when using `this` instead of `this ref` for the FastBufferReader/FastBufferWriter parameter of an extension method. (#1393)
23+
- Fixed an issue where if you are running as a server (not host) the LoadEventCompleted and UnloadEventCompleted events would fire early by the NetworkSceneManager (#1379)
24+
- Fixed a runtime error when sending an array of an INetworkSerializable type that's implemented as a struct (#1402)
25+
- NetworkConfig will no longer throw an OverflowException in GetConfig() when ForceSamePrefabs is enabled and the number of prefabs causes the config blob size to exceed 1300 bytes. (#1385)
26+
- Fixed NetworkVariable not calling NetworkSerialize on INetworkSerializable types (#1383)
27+
- Fixed NullReferenceException on ImportReferences call in NetworkBehaviourILPP (#1434)
28+
29+
- Fixed NetworkObjects not being despawned before they are destroyed during shutdown for client, host, and server instances. (#1390)
30+
31+
### Changed
32+
33+
- The SDK no longer limits message size to 64k. (The transport may still impose its own limits, but the SDK no longer does.) (#1384)
34+
- Updated com.unity.collections to 1.1.0 (#1451)
35+
36+
937
## [1.0.0-pre.3] - 2021-10-22
1038

1139
### Added

com.unity.netcode.gameobjects/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
"com.unity.modules.ai": "1.0.0",
99
"com.unity.modules.animation": "1.0.0",
1010
"com.unity.nuget.mono-cecil": "1.10.1",
11-
"com.unity.collections": "1.0.0-pre.5"
11+
"com.unity.collections": "1.1.0"
1212
}
1313
}

0 commit comments

Comments
 (0)