@@ -13,31 +13,40 @@ namespace Unity.Netcode.RuntimeTests.Metrics
13
13
{
14
14
public class NetworkObjectMetricsTests : SingleClientMetricTestBase
15
15
{
16
- const string NewNetworkObjectName = "TestNetworkObjectToSpawn" ;
17
-
18
- NetworkObject m_NewNetworkObject ;
16
+ private const string k_NewNetworkObjectName = "TestNetworkObjectToSpawn" ;
17
+ private NetworkObject m_NewNetworkPrefab ;
19
18
20
19
protected override Action < GameObject > UpdatePlayerPrefab => _ =>
21
20
{
22
- var gameObject = new GameObject ( NewNetworkObjectName ) ;
23
- m_NewNetworkObject = gameObject . AddComponent < NetworkObject > ( ) ;
24
- m_NewNetworkObject . NetworkManagerOwner = m_ServerNetworkManager ;
25
- MultiInstanceHelpers . MakeNetworkedObjectTestPrefab ( m_NewNetworkObject ) ;
21
+ var gameObject = new GameObject ( k_NewNetworkObjectName ) ;
22
+ m_NewNetworkPrefab = gameObject . AddComponent < NetworkObject > ( ) ;
23
+ MultiInstanceHelpers . MakeNetworkObjectTestPrefab ( m_NewNetworkPrefab ) ;
24
+
26
25
var networkPrefab = new NetworkPrefab { Prefab = gameObject } ;
27
26
m_ServerNetworkManager . NetworkConfig . NetworkPrefabs . Add ( networkPrefab ) ;
28
-
29
27
foreach ( var client in m_ClientNetworkManagers )
30
28
{
31
29
client . NetworkConfig . NetworkPrefabs . Add ( networkPrefab ) ;
32
30
}
33
31
} ;
34
32
33
+ private NetworkObject SpawnNetworkObject ( )
34
+ {
35
+ // Spawn another network object so we can hide multiple.
36
+ var gameObject = UnityEngine . Object . Instantiate ( m_NewNetworkPrefab ) ; // new GameObject(NewNetworkObjectName);
37
+ var networkObject = gameObject . GetComponent < NetworkObject > ( ) ;
38
+ networkObject . NetworkManagerOwner = Server ;
39
+ networkObject . Spawn ( ) ;
40
+
41
+ return networkObject ;
42
+ }
43
+
35
44
[ UnityTest ]
36
45
public IEnumerator TrackNetworkObjectSpawnSentMetric ( )
37
46
{
38
47
var waitForMetricEvent = new WaitForMetricValues < ObjectSpawnedEvent > ( ServerMetrics . Dispatcher , MetricNames . ObjectSpawnedSent ) ;
39
48
40
- m_NewNetworkObject . Spawn ( ) ;
49
+ SpawnNetworkObject ( ) ;
41
50
42
51
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
43
52
@@ -46,7 +55,7 @@ public IEnumerator TrackNetworkObjectSpawnSentMetric()
46
55
47
56
var objectSpawned = objectSpawnedSentMetricValues . First ( ) ;
48
57
Assert . AreEqual ( Client . LocalClientId , objectSpawned . Connection . Id ) ;
49
- Assert . AreEqual ( NewNetworkObjectName , objectSpawned . NetworkId . Name ) ;
58
+ Assert . AreEqual ( $ " { k_NewNetworkObjectName } (Clone)" , objectSpawned . NetworkId . Name ) ;
50
59
Assert . AreNotEqual ( 0 , objectSpawned . BytesCount ) ;
51
60
}
52
61
@@ -55,7 +64,7 @@ public IEnumerator TrackNetworkObjectSpawnReceivedMetric()
55
64
{
56
65
var waitForMetricEvent = new WaitForMetricValues < ObjectSpawnedEvent > ( ClientMetrics . Dispatcher , MetricNames . ObjectSpawnedReceived ) ;
57
66
58
- m_NewNetworkObject . Spawn ( ) ;
67
+ var networkObject = SpawnNetworkObject ( ) ;
59
68
60
69
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
61
70
@@ -64,21 +73,21 @@ public IEnumerator TrackNetworkObjectSpawnReceivedMetric()
64
73
65
74
var objectSpawned = objectSpawnedReceivedMetricValues . First ( ) ;
66
75
Assert . AreEqual ( Server . LocalClientId , objectSpawned . Connection . Id ) ;
67
- Assert . AreEqual ( m_NewNetworkObject . NetworkObjectId , objectSpawned . NetworkId . NetworkId ) ;
68
- Assert . AreEqual ( $ "{ NewNetworkObjectName } (Clone)", objectSpawned . NetworkId . Name ) ;
76
+ Assert . AreEqual ( networkObject . NetworkObjectId , objectSpawned . NetworkId . NetworkId ) ;
77
+ Assert . AreEqual ( $ "{ k_NewNetworkObjectName } (Clone)", objectSpawned . NetworkId . Name ) ;
69
78
Assert . AreNotEqual ( 0 , objectSpawned . BytesCount ) ;
70
79
}
71
80
72
81
[ UnityTest ]
73
82
public IEnumerator TrackNetworkObjectDestroySentMetric ( )
74
83
{
75
- m_NewNetworkObject . Spawn ( ) ;
84
+ var networkObject = SpawnNetworkObject ( ) ;
76
85
77
86
yield return new WaitForSeconds ( 0.2f ) ;
78
87
79
88
var waitForMetricEvent = new WaitForMetricValues < ObjectDestroyedEvent > ( ServerMetrics . Dispatcher , MetricNames . ObjectDestroyedSent ) ;
80
89
81
- Server . SpawnManager . OnDespawnObject ( m_NewNetworkObject , true ) ;
90
+ Server . SpawnManager . OnDespawnObject ( networkObject , true ) ;
82
91
83
92
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
84
93
@@ -87,20 +96,20 @@ public IEnumerator TrackNetworkObjectDestroySentMetric()
87
96
88
97
var objectDestroyed = objectDestroyedSentMetricValues . Last ( ) ;
89
98
Assert . AreEqual ( Client . LocalClientId , objectDestroyed . Connection . Id ) ;
90
- Assert . AreEqual ( NewNetworkObjectName , objectDestroyed . NetworkId . Name ) ;
99
+ Assert . AreEqual ( $ " { k_NewNetworkObjectName } (Clone)" , objectDestroyed . NetworkId . Name ) ;
91
100
Assert . AreNotEqual ( 0 , objectDestroyed . BytesCount ) ;
92
101
}
93
102
94
103
[ UnityTest ]
95
104
public IEnumerator TrackNetworkObjectDestroyReceivedMetric ( )
96
105
{
97
- m_NewNetworkObject . Spawn ( ) ;
106
+ var networkObject = SpawnNetworkObject ( ) ;
98
107
99
108
yield return new WaitForSeconds ( 0.2f ) ;
100
109
101
110
var waitForMetricEvent = new WaitForMetricValues < ObjectDestroyedEvent > ( ClientMetrics . Dispatcher , MetricNames . ObjectDestroyedReceived ) ;
102
111
103
- Server . SpawnManager . OnDespawnObject ( m_NewNetworkObject , true ) ;
112
+ Server . SpawnManager . OnDespawnObject ( networkObject , true ) ;
104
113
105
114
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
106
115
@@ -109,31 +118,26 @@ public IEnumerator TrackNetworkObjectDestroyReceivedMetric()
109
118
110
119
var objectDestroyed = objectDestroyedReceivedMetricValues . First ( ) ;
111
120
Assert . AreEqual ( Server . LocalClientId , objectDestroyed . Connection . Id ) ;
112
- Assert . AreEqual ( m_NewNetworkObject . NetworkObjectId , objectDestroyed . NetworkId . NetworkId ) ;
113
- Assert . AreEqual ( $ "{ NewNetworkObjectName } (Clone)", objectDestroyed . NetworkId . Name ) ;
121
+ Assert . AreEqual ( networkObject . NetworkObjectId , objectDestroyed . NetworkId . NetworkId ) ;
122
+ Assert . AreEqual ( $ "{ k_NewNetworkObjectName } (Clone)", objectDestroyed . NetworkId . Name ) ;
114
123
Assert . AreNotEqual ( 0 , objectDestroyed . BytesCount ) ;
115
124
}
116
125
117
126
[ UnityTest ]
118
127
public IEnumerator TrackMultipleNetworkObjectSpawnSentMetric ( )
119
128
{
120
- m_NewNetworkObject . Spawn ( ) ;
121
-
122
- // Spawn another network object so we can hide multiple.
123
- var gameObject = new GameObject ( NewNetworkObjectName ) ;
124
- var anotherNetworkObject = gameObject . AddComponent < NetworkObject > ( ) ;
125
- anotherNetworkObject . NetworkManagerOwner = Server ;
126
- anotherNetworkObject . Spawn ( ) ;
129
+ var networkObject1 = SpawnNetworkObject ( ) ;
130
+ var networkObject2 = SpawnNetworkObject ( ) ;
127
131
128
132
yield return new WaitForSeconds ( 0.2f ) ;
129
133
130
- NetworkObject . NetworkHide ( new List < NetworkObject > { m_NewNetworkObject , anotherNetworkObject } , Client . LocalClientId ) ;
134
+ NetworkObject . NetworkHide ( new List < NetworkObject > { networkObject1 , networkObject2 } , Client . LocalClientId ) ;
131
135
132
136
yield return new WaitForSeconds ( 0.2f ) ;
133
137
134
138
var waitForMetricEvent = new WaitForMetricValues < ObjectSpawnedEvent > ( ServerMetrics . Dispatcher , MetricNames . ObjectSpawnedSent ) ;
135
139
136
- NetworkObject . NetworkShow ( new List < NetworkObject > { m_NewNetworkObject , anotherNetworkObject } , Client . LocalClientId ) ;
140
+ NetworkObject . NetworkShow ( new List < NetworkObject > { networkObject1 , networkObject2 } , Client . LocalClientId ) ;
137
141
138
142
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
139
143
@@ -143,14 +147,14 @@ public IEnumerator TrackMultipleNetworkObjectSpawnSentMetric()
143
147
objectSpawnedSentMetricValues ,
144
148
Has . Exactly ( 1 ) . Matches < ObjectSpawnedEvent > (
145
149
x => Client . LocalClientId == x . Connection . Id
146
- && x . NetworkId . NetworkId == m_NewNetworkObject . NetworkObjectId
147
- && x . NetworkId . Name == m_NewNetworkObject . name ) ) ;
150
+ && x . NetworkId . NetworkId == networkObject1 . NetworkObjectId
151
+ && x . NetworkId . Name == networkObject1 . name ) ) ;
148
152
Assert . That (
149
153
objectSpawnedSentMetricValues ,
150
154
Has . Exactly ( 1 ) . Matches < ObjectSpawnedEvent > (
151
155
x => Client . LocalClientId == x . Connection . Id
152
- && x . NetworkId . NetworkId == anotherNetworkObject . NetworkObjectId
153
- && x . NetworkId . Name == anotherNetworkObject . name ) ) ;
156
+ && x . NetworkId . NetworkId == networkObject2 . NetworkObjectId
157
+ && x . NetworkId . Name == networkObject2 . name ) ) ;
154
158
155
159
Assert . AreEqual ( 1 , objectSpawnedSentMetricValues . Select ( x => x . BytesCount ) . Distinct ( ) . Count ( ) ) ;
156
160
Assert . That ( objectSpawnedSentMetricValues . Select ( x => x . BytesCount ) , Has . All . Not . EqualTo ( 0 ) ) ;
@@ -159,19 +163,14 @@ public IEnumerator TrackMultipleNetworkObjectSpawnSentMetric()
159
163
[ UnityTest ]
160
164
public IEnumerator TrackMultipleNetworkObjectDestroySentMetric ( )
161
165
{
162
- m_NewNetworkObject . Spawn ( ) ;
163
-
164
- // Spawn another network object so we can hide multiple.
165
- var gameObject = new GameObject ( NewNetworkObjectName ) ;
166
- var anotherNetworkObject = gameObject . AddComponent < NetworkObject > ( ) ;
167
- anotherNetworkObject . NetworkManagerOwner = Server ;
168
- anotherNetworkObject . Spawn ( ) ;
166
+ var networkObject1 = SpawnNetworkObject ( ) ;
167
+ var networkObject2 = SpawnNetworkObject ( ) ;
169
168
170
169
yield return new WaitForSeconds ( 0.2f ) ;
171
170
172
171
var waitForMetricEvent = new WaitForMetricValues < ObjectDestroyedEvent > ( ServerMetrics . Dispatcher , MetricNames . ObjectDestroyedSent ) ;
173
172
174
- NetworkObject . NetworkHide ( new List < NetworkObject > { m_NewNetworkObject , anotherNetworkObject } , Client . LocalClientId ) ;
173
+ NetworkObject . NetworkHide ( new List < NetworkObject > { networkObject1 , networkObject2 } , Client . LocalClientId ) ;
175
174
176
175
yield return waitForMetricEvent . WaitForMetricsReceived ( ) ;
177
176
@@ -181,14 +180,14 @@ public IEnumerator TrackMultipleNetworkObjectDestroySentMetric()
181
180
objectDestroyedSentMetricValues ,
182
181
Has . Exactly ( 1 ) . Matches < ObjectDestroyedEvent > (
183
182
x => Client . LocalClientId == x . Connection . Id
184
- && x . NetworkId . NetworkId == m_NewNetworkObject . NetworkObjectId
185
- && x . NetworkId . Name == m_NewNetworkObject . name ) ) ;
183
+ && x . NetworkId . NetworkId == networkObject1 . NetworkObjectId
184
+ && x . NetworkId . Name == networkObject1 . name ) ) ;
186
185
Assert . That (
187
186
objectDestroyedSentMetricValues ,
188
187
Has . Exactly ( 1 ) . Matches < ObjectDestroyedEvent > (
189
188
x => Client . LocalClientId == x . Connection . Id
190
- && x . NetworkId . NetworkId == anotherNetworkObject . NetworkObjectId
191
- && x . NetworkId . Name == anotherNetworkObject . name ) ) ;
189
+ && x . NetworkId . NetworkId == networkObject2 . NetworkObjectId
190
+ && x . NetworkId . Name == networkObject2 . name ) ) ;
192
191
193
192
Assert . AreEqual ( 1 , objectDestroyedSentMetricValues . Select ( x => x . BytesCount ) . Distinct ( ) . Count ( ) ) ;
194
193
Assert . That ( objectDestroyedSentMetricValues . Select ( x => x . BytesCount ) , Has . All . Not . EqualTo ( 0 ) ) ;
0 commit comments