Skip to content

Commit 7c663fa

Browse files
chore: remove UNET [MTT-3435] (#638)
* removed references to unet in code, prefabs and architecture.md * removing TransportPicker
1 parent 5dc6bd6 commit 7c663fa

File tree

9 files changed

+51
-312
lines changed

9 files changed

+51
-312
lines changed

ARCHITECTURE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ For Unity Relay based multiplayer sessions, some setup is required. Please see o
4343
Please see [Multiplayer over internet](README.md) section of our Readme for more information on using either one.
4444

4545
To allow for any of these options to be chosen at runtime we created `TransportPicker`. It allows one to choose between an IP-based and a Relay-based transport and will hook up the game UI to use those transports. The transport field in the `NetworkManager` will be ignored. Currently we support the following transports:
46-
- **UNET(IP):** UNET is the default Netcode transport. However, it is not the default IP transport for Boss Room.
4746
- **UTP (IP):** Unity Transport Package is a network transport layer, packaged with network simulation tools which are useful for spotting networking issues early during development. This IP based protocol is the default IP transport for Boss Room. See the documentation on [Unity Transport Package](https://docs-multiplayer.unity3d.com/docs/transport-utp/about-transport-utp/#unity-transport-package-utp).
4847
- **Unity (Relay):** Unity Relay is a relay service provided by Unity services, supported by Unity Transport. Read more about [Unity Relay](https://docs-multiplayer.unity3d.com/docs/relay/relay).
4948

Assets/BossRoom/Prefabs/NetworkingManager.prefab

Lines changed: 14 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ Transform:
2727
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
2828
m_LocalPosition: {x: 0, y: 0, z: 0}
2929
m_LocalScale: {x: 1, y: 1, z: 1}
30+
m_ConstrainProportionsScale: 0
3031
m_Children: []
3132
m_Father: {fileID: 5436007408952557925}
32-
m_RootOrder: 1
33+
m_RootOrder: 0
3334
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
3435
--- !u!114 &5486862276979889515
3536
MonoBehaviour:
@@ -59,65 +60,6 @@ MonoBehaviour:
5960
PacketDelayMS: 0
6061
PacketJitterMS: 0
6162
PacketDropRate: 0
62-
--- !u!1 &503411707
63-
GameObject:
64-
m_ObjectHideFlags: 0
65-
m_CorrespondingSourceObject: {fileID: 0}
66-
m_PrefabInstance: {fileID: 0}
67-
m_PrefabAsset: {fileID: 0}
68-
serializedVersion: 6
69-
m_Component:
70-
- component: {fileID: 503411708}
71-
- component: {fileID: 503411709}
72-
m_Layer: 0
73-
m_Name: Relay UTP
74-
m_TagString: Untagged
75-
m_Icon: {fileID: 0}
76-
m_NavMeshLayer: 0
77-
m_StaticEditorFlags: 0
78-
m_IsActive: 1
79-
--- !u!4 &503411708
80-
Transform:
81-
m_ObjectHideFlags: 0
82-
m_CorrespondingSourceObject: {fileID: 0}
83-
m_PrefabInstance: {fileID: 0}
84-
m_PrefabAsset: {fileID: 0}
85-
m_GameObject: {fileID: 503411707}
86-
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
87-
m_LocalPosition: {x: 0, y: 0, z: 0}
88-
m_LocalScale: {x: 1, y: 1, z: 1}
89-
m_Children: []
90-
m_Father: {fileID: 5436007408952557925}
91-
m_RootOrder: 2
92-
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
93-
--- !u!114 &503411709
94-
MonoBehaviour:
95-
m_ObjectHideFlags: 0
96-
m_CorrespondingSourceObject: {fileID: 0}
97-
m_PrefabInstance: {fileID: 0}
98-
m_PrefabAsset: {fileID: 0}
99-
m_GameObject: {fileID: 503411707}
100-
m_Enabled: 1
101-
m_EditorHideFlags: 0
102-
m_Script: {fileID: 11500000, guid: 6960e84d07fb87f47956e7a81d71c4e6, type: 3}
103-
m_Name:
104-
m_EditorClassIdentifier:
105-
m_ProtocolType: 1
106-
m_MaxPacketQueueSize: 512
107-
m_MaxPayloadSize: 32000
108-
m_MaxSendQueueSize: 50000000
109-
m_HeartbeatTimeoutMS: 500
110-
m_ConnectTimeoutMS: 1000
111-
m_MaxConnectAttempts: 60
112-
m_DisconnectTimeoutMS: 10000
113-
ConnectionData:
114-
Address: 127.0.0.1
115-
Port: 7777
116-
ServerListenAddress:
117-
DebugSimulator:
118-
PacketDelayMS: 0
119-
PacketJitterMS: 0
120-
PacketDropRate: 0
12163
--- !u!1 &5436007408952557947
12264
GameObject:
12365
m_ObjectHideFlags: 0
@@ -127,7 +69,6 @@ GameObject:
12769
serializedVersion: 6
12870
m_Component:
12971
- component: {fileID: 5436007408952557925}
130-
- component: {fileID: 1359040526}
13172
- component: {fileID: 5436007408952557924}
13273
m_Layer: 0
13374
m_Name: NetworkingManager
@@ -146,27 +87,12 @@ Transform:
14687
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
14788
m_LocalPosition: {x: 0, y: 0, z: 0}
14889
m_LocalScale: {x: 1, y: 1, z: 1}
90+
m_ConstrainProportionsScale: 0
14991
m_Children:
150-
- {fileID: 1861090270400447367}
15192
- {fileID: 347284043}
152-
- {fileID: 503411708}
15393
m_Father: {fileID: 0}
15494
m_RootOrder: 0
15595
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
156-
--- !u!114 &1359040526
157-
MonoBehaviour:
158-
m_ObjectHideFlags: 0
159-
m_CorrespondingSourceObject: {fileID: 0}
160-
m_PrefabInstance: {fileID: 0}
161-
m_PrefabAsset: {fileID: 0}
162-
m_GameObject: {fileID: 5436007408952557947}
163-
m_Enabled: 1
164-
m_EditorHideFlags: 0
165-
m_Script: {fileID: 11500000, guid: 0c0e18361257a9f409d6064bac74e732, type: 3}
166-
m_Name:
167-
m_EditorClassIdentifier:
168-
m_IpHostTransport: {fileID: 5486862276979889515}
169-
m_UnityRelayTransport: {fileID: 503411709}
17096
--- !u!114 &5436007408952557924
17197
MonoBehaviour:
17298
m_ObjectHideFlags: 0
@@ -184,66 +110,55 @@ MonoBehaviour:
184110
NetworkConfig:
185111
ProtocolVersion: 0
186112
NetworkTransport: {fileID: 5486862276979889515}
187-
PlayerPrefab: {fileID: 4927145850774787080, guid: 1d3f5528d25661949890bcd7f47fe81a,
188-
type: 3}
113+
PlayerPrefab: {fileID: 4927145850774787080, guid: 1d3f5528d25661949890bcd7f47fe81a, type: 3}
189114
NetworkPrefabs:
190115
- Override: 0
191-
Prefab: {fileID: 6009713983291384756, guid: 8237adf32a9b6de4892e6febe6b4bdef,
192-
type: 3}
116+
Prefab: {fileID: 6009713983291384756, guid: 8237adf32a9b6de4892e6febe6b4bdef, type: 3}
193117
SourcePrefabToOverride: {fileID: 0}
194118
SourceHashToOverride: 0
195119
OverridingTargetPrefab: {fileID: 0}
196120
- Override: 0
197-
Prefab: {fileID: 3713729372785093424, guid: 6cdd52f1fa2ed34469a487ae6477eded,
198-
type: 3}
121+
Prefab: {fileID: 3713729372785093424, guid: 6cdd52f1fa2ed34469a487ae6477eded, type: 3}
199122
SourcePrefabToOverride: {fileID: 0}
200123
SourceHashToOverride: 0
201124
OverridingTargetPrefab: {fileID: 0}
202125
- Override: 0
203-
Prefab: {fileID: 3688950541947916333, guid: 365e94337fd10fe4ebde1906df413ac7,
204-
type: 3}
126+
Prefab: {fileID: 3688950541947916333, guid: 365e94337fd10fe4ebde1906df413ac7, type: 3}
205127
SourcePrefabToOverride: {fileID: 0}
206128
SourceHashToOverride: 0
207129
OverridingTargetPrefab: {fileID: 0}
208130
- Override: 0
209-
Prefab: {fileID: 2842198241268549130, guid: 30c420f004b8f6445ad2bdb2addb234a,
210-
type: 3}
131+
Prefab: {fileID: 2842198241268549130, guid: 30c420f004b8f6445ad2bdb2addb234a, type: 3}
211132
SourcePrefabToOverride: {fileID: 0}
212133
SourceHashToOverride: 0
213134
OverridingTargetPrefab: {fileID: 0}
214135
- Override: 0
215-
Prefab: {fileID: 2842198241268549130, guid: 7e3b8103f5622f64fa677352730f295c,
216-
type: 3}
136+
Prefab: {fileID: 2842198241268549130, guid: 7e3b8103f5622f64fa677352730f295c, type: 3}
217137
SourcePrefabToOverride: {fileID: 0}
218138
SourceHashToOverride: 0
219139
OverridingTargetPrefab: {fileID: 0}
220140
- Override: 0
221-
Prefab: {fileID: 2842198241268549130, guid: 411974b75a8b43d4e9b3c9069a5067fb,
222-
type: 3}
141+
Prefab: {fileID: 2842198241268549130, guid: 411974b75a8b43d4e9b3c9069a5067fb, type: 3}
223142
SourcePrefabToOverride: {fileID: 0}
224143
SourceHashToOverride: 0
225144
OverridingTargetPrefab: {fileID: 0}
226145
- Override: 0
227-
Prefab: {fileID: 2842198241268549130, guid: 0251e08eeed89e844a8527b3a7874cc2,
228-
type: 3}
146+
Prefab: {fileID: 2842198241268549130, guid: 0251e08eeed89e844a8527b3a7874cc2, type: 3}
229147
SourcePrefabToOverride: {fileID: 0}
230148
SourceHashToOverride: 0
231149
OverridingTargetPrefab: {fileID: 0}
232150
- Override: 0
233-
Prefab: {fileID: 576565557002701866, guid: 3af96a32a84bcf74d9538fa7af973c97,
234-
type: 3}
151+
Prefab: {fileID: 576565557002701866, guid: 3af96a32a84bcf74d9538fa7af973c97, type: 3}
235152
SourcePrefabToOverride: {fileID: 0}
236153
SourceHashToOverride: 0
237154
OverridingTargetPrefab: {fileID: 0}
238155
- Override: 0
239-
Prefab: {fileID: 3597354879354517420, guid: c8513d3df780cb34a9576da3772d512b,
240-
type: 3}
156+
Prefab: {fileID: 3597354879354517420, guid: c8513d3df780cb34a9576da3772d512b, type: 3}
241157
SourcePrefabToOverride: {fileID: 0}
242158
SourceHashToOverride: 0
243159
OverridingTargetPrefab: {fileID: 0}
244160
- Override: 0
245-
Prefab: {fileID: 3106828016798330210, guid: 5c107a985e30aa2469a62ecf015d43a8,
246-
type: 3}
161+
Prefab: {fileID: 3106828016798330210, guid: 5c107a985e30aa2469a62ecf015d43a8, type: 3}
247162
SourcePrefabToOverride: {fileID: 0}
248163
SourceHashToOverride: 0
249164
OverridingTargetPrefab: {fileID: 0}
@@ -262,53 +177,3 @@ MonoBehaviour:
262177
LoadSceneTimeOut: 120
263178
SpawnTimeout: 1
264179
EnableNetworkLogs: 1
265-
--- !u!1 &7311172147761373013
266-
GameObject:
267-
m_ObjectHideFlags: 0
268-
m_CorrespondingSourceObject: {fileID: 0}
269-
m_PrefabInstance: {fileID: 0}
270-
m_PrefabAsset: {fileID: 0}
271-
serializedVersion: 6
272-
m_Component:
273-
- component: {fileID: 1861090270400447367}
274-
- component: {fileID: 7738483995325753316}
275-
m_Layer: 0
276-
m_Name: UnetTransport2
277-
m_TagString: Untagged
278-
m_Icon: {fileID: 0}
279-
m_NavMeshLayer: 0
280-
m_StaticEditorFlags: 0
281-
m_IsActive: 1
282-
--- !u!4 &1861090270400447367
283-
Transform:
284-
m_ObjectHideFlags: 0
285-
m_CorrespondingSourceObject: {fileID: 0}
286-
m_PrefabInstance: {fileID: 0}
287-
m_PrefabAsset: {fileID: 0}
288-
m_GameObject: {fileID: 7311172147761373013}
289-
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
290-
m_LocalPosition: {x: 0, y: 0, z: 0}
291-
m_LocalScale: {x: 1, y: 1, z: 1}
292-
m_Children: []
293-
m_Father: {fileID: 5436007408952557925}
294-
m_RootOrder: 0
295-
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
296-
--- !u!114 &7738483995325753316
297-
MonoBehaviour:
298-
m_ObjectHideFlags: 0
299-
m_CorrespondingSourceObject: {fileID: 0}
300-
m_PrefabInstance: {fileID: 0}
301-
m_PrefabAsset: {fileID: 0}
302-
m_GameObject: {fileID: 7311172147761373013}
303-
m_Enabled: 1
304-
m_EditorHideFlags: 0
305-
m_Script: {fileID: 11500000, guid: b84c2d8dfe509a34fb59e2b81f8e1319, type: 3}
306-
m_Name:
307-
m_EditorClassIdentifier:
308-
MessageBufferSize: 5120
309-
MaxConnections: 100
310-
MaxSentMessageQueueSize: 128
311-
ConnectAddress: 127.0.0.1
312-
ConnectPort: 7777
313-
ServerListenPort: 7777
314-
MessageSendMode: 0

Assets/BossRoom/Scripts/Game/Client/UI/IPConnectionWindow.cs

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using TMPro;
44
using Unity.Multiplayer.Samples.BossRoom.Shared.Infrastructure;
55
using Unity.Netcode;
6-
using Unity.Netcode.Transports.UNET;
76
using Unity.Netcode.Transports.UTP;
87
using UnityEngine;
98

@@ -47,29 +46,17 @@ void Hide()
4746

4847
public void ShowConnectingWindow()
4948
{
50-
var chosenTransport = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().IpHostTransport;
51-
NetworkManager.Singleton.NetworkConfig.NetworkTransport = chosenTransport;
52-
5349
void OnTimeElapsed()
5450
{
5551
m_ConnectStatusPublisher.Publish(ConnectStatus.StartClientFailed);
5652
Hide();
5753
m_IPUIMediator.DisableSignInSpinner();
5854
}
5955

60-
switch (chosenTransport)
61-
{
62-
case UNetTransport unetTransport:
63-
StartCoroutine(WaitUntilUNETDisconnected(OnTimeElapsed));
64-
break;
65-
case UnityTransport unityTransport:
66-
var maxConnectAttempts = unityTransport.MaxConnectAttempts;
67-
var connectTimeoutMS = unityTransport.ConnectTimeoutMS;
68-
StartCoroutine(DisplayUTPConnectionDuration(maxConnectAttempts, connectTimeoutMS, OnTimeElapsed));
69-
break;
70-
default:
71-
throw new ArgumentOutOfRangeException(nameof(chosenTransport));
72-
}
56+
var utp = (UnityTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
57+
var maxConnectAttempts = utp.MaxConnectAttempts;
58+
var connectTimeoutMS = utp.ConnectTimeoutMS;
59+
StartCoroutine(DisplayUTPConnectionDuration(maxConnectAttempts, connectTimeoutMS, OnTimeElapsed));
7360

7461
Show();
7562
}
@@ -80,13 +67,6 @@ public void CancelConnectionWindow()
8067
StopAllCoroutines();
8168
}
8269

83-
IEnumerator WaitUntilUNETDisconnected(Action endAction)
84-
{
85-
yield return new WaitUntil(() => !NetworkManager.Singleton.IsListening);
86-
87-
endAction();
88-
}
89-
9070
IEnumerator DisplayUTPConnectionDuration(int maxReconnectAttempts, int connectTimeoutMS, Action endAction)
9171
{
9272
var connectionDuration = maxReconnectAttempts * connectTimeoutMS / 1000f;

Assets/BossRoom/Scripts/Game/Client/UI/Lobby/LobbyUIMediator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,13 @@ public async void QuickJoinRequest()
205205
}
206206
}
207207

208-
void OnJoinedLobby(Lobby remoteLobby)
208+
async void OnJoinedLobby(Lobby remoteLobby)
209209
{
210210
m_LobbyServiceFacade.SetRemoteLobby(remoteLobby);
211211
m_GameNetPortal.PlayerName = m_LocalUser.DisplayName;
212212

213213
Debug.Log($"Joined lobby with code: {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
214-
m_ClientNetPortal.StartClientUnityRelayModeAsync(OnRelayJoinFailed);
214+
await m_ClientNetPortal.StartClientUnityRelayModeAsync(OnRelayJoinFailed);
215215

216216
void OnRelayJoinFailed(string message)
217217
{

Assets/BossRoom/Scripts/Game/ConnectionManagement/ClientGameNetPortal.cs

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using UnityEngine.SceneManagement;
99
using Unity.Multiplayer.Samples.Utilities;
1010
using Unity.Netcode;
11-
using Unity.Netcode.Transports.UNET;
1211
using Unity.Netcode.Transports.UTP;
1312

1413
namespace Unity.Multiplayer.Samples.BossRoom.Client
@@ -205,7 +204,7 @@ private IEnumerator TryToReconnect(string lobbyCode)
205204
if (joiningLobby.Result.Success)
206205
{
207206
m_LobbyServiceFacade.SetRemoteLobby(joiningLobby.Result.Lobby);
208-
var joiningRelay = JoinRelayAsync();
207+
var joiningRelay = StartClientUnityRelayModeAsync(null);
209208
yield return new WaitUntil(() => joiningRelay.IsCompleted);
210209
}
211210
else
@@ -244,35 +243,13 @@ private IEnumerator TryToReconnect(string lobbyCode)
244243
/// <param name="port">The port of the host to connect to. </param>
245244
public void StartClient(string ipaddress, int port)
246245
{
247-
var chosenTransport = NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().IpHostTransport;
248-
NetworkManager.Singleton.NetworkConfig.NetworkTransport = chosenTransport;
249-
250-
switch (chosenTransport)
251-
{
252-
case UNetTransport unetTransport:
253-
unetTransport.ConnectAddress = ipaddress;
254-
unetTransport.ConnectPort = port;
255-
break;
256-
case UnityTransport unityTransport:
257-
// TODO: once this is exposed in the adapter we will be able to change it
258-
unityTransport.SetConnectionData(ipaddress, (ushort)port);
259-
break;
260-
default:
261-
throw new ArgumentOutOfRangeException(nameof(chosenTransport));
262-
}
246+
var utp = (UnityTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
247+
utp.SetConnectionData(ipaddress, (ushort)port);
263248

264249
ConnectClient();
265250
}
266251

267-
public async void StartClientUnityRelayModeAsync(Action<string> onFailure)
268-
{
269-
var utp = (UnityTransport)NetworkManager.Singleton.gameObject.GetComponent<TransportPicker>().UnityRelayTransport;
270-
NetworkManager.Singleton.NetworkConfig.NetworkTransport = utp;
271-
272-
await JoinRelayAsync(onFailure);
273-
}
274-
275-
async Task JoinRelayAsync(Action<string> onFailure = null)
252+
public async Task StartClientUnityRelayModeAsync(Action<string> onFailure)
276253
{
277254
Debug.Log($"Setting Unity Relay client with join code {m_LocalLobby.RelayJoinCode}");
278255

0 commit comments

Comments
 (0)