Skip to content

Commit 078bca1

Browse files
Merge branch 'develop-2.0.0' into feat/attachable-networkbehaviour-and-object-controller
2 parents ae29873 + b87dae7 commit 078bca1

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Additional documentation and release notes are available at [Multiplayer Documen
1010

1111
### Added
1212

13+
- Added mappings between `ClientId` and `TransportId`. (#3516)
1314
- Added `NetworkPrefabInstanceHandlerWithData<T>`, a variant of `INetworkPrefabInstanceHandler` that provides access to custom instantiation data directly within the `Instantiate()` method. (#3430)
1415

1516
### Fixed

com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,6 +1467,20 @@ private void HostServerInitialize()
14671467
ConnectionManager.InvokeOnClientConnectedCallback(LocalClientId);
14681468
}
14691469

1470+
/// <summary>
1471+
/// Get the TransportId from the associated ClientId.
1472+
/// </summary>
1473+
/// <param name="clientId">The ClientId to get the TransportId from</param>
1474+
/// <returns>The TransportId associated with the given ClientId</returns>
1475+
public ulong GetTransportIdFromClientId(ulong clientId) => ConnectionManager.ClientIdToTransportId(clientId);
1476+
1477+
/// <summary>
1478+
/// Get the ClientId from the associated TransportId.
1479+
/// </summary>
1480+
/// <param name="transportId">The TransportId to get the ClientId from</param>
1481+
/// <returns>The ClientId from the associated TransportId</returns>
1482+
public ulong GetClientIdFromTransportId(ulong transportId) => ConnectionManager.TransportIdToClientId(transportId);
1483+
14701484
/// <summary>
14711485
/// Disconnects the remote client.
14721486
/// </summary>

testproject/Assets/Tests/Runtime/NetworkManagerTests.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,28 @@
99

1010
namespace TestProject.RuntimeTests
1111
{
12+
public class NetworkManagerTests : NetcodeIntegrationTest
13+
{
14+
protected override int NumberOfClients => 2;
15+
16+
[Test]
17+
public void ValidateTransportAndClientIds()
18+
{
19+
var transportId = m_ServerNetworkManager.GetTransportIdFromClientId(m_ServerNetworkManager.LocalClientId);
20+
Assert.IsTrue(m_ServerNetworkManager.GetTransportIdFromClientId(m_ServerNetworkManager.LocalClientId) == m_ServerNetworkManager.ConnectionManager.ServerTransportId);
21+
Assert.IsTrue(m_ServerNetworkManager.GetClientIdFromTransportId(transportId) == m_ServerNetworkManager.LocalClientId);
22+
23+
foreach (var client in m_ClientNetworkManagers)
24+
{
25+
transportId = m_ServerNetworkManager.GetTransportIdFromClientId(client.LocalClientId);
26+
Assert.AreEqual(client.LocalClientId, m_ServerNetworkManager.GetClientIdFromTransportId(transportId), "Server and client transport IDs don't match.");
27+
}
28+
}
29+
}
30+
1231
[TestFixture(UseSceneManagement.SceneManagementDisabled)]
1332
[TestFixture(UseSceneManagement.SceneManagementEnabled)]
14-
public class NetworkManagerTests : NetcodeIntegrationTest
33+
public class NetworkManagerSceneTests : NetcodeIntegrationTest
1534
{
1635
private const string k_SceneToLoad = "InSceneNetworkObject";
1736
protected override int NumberOfClients => 0;
@@ -33,7 +52,7 @@ public enum UseSceneManagement
3352

3453
private bool m_UseSceneManagement;
3554

36-
public NetworkManagerTests(UseSceneManagement useSceneManagement)
55+
public NetworkManagerSceneTests(UseSceneManagement useSceneManagement)
3756
{
3857
m_UseSceneManagement = useSceneManagement == UseSceneManagement.SceneManagementEnabled;
3958
}

0 commit comments

Comments
 (0)