RecursionDetectionHandlesComplexScripts.cs
11.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
using System.Collections;
using NUnit.Framework;
using UnityEngine.TestTools;
using UnityEngine;
using UnityEngine.Networking;
#pragma warning disable 618
public class RecursionDetectionHandlesComplexScripts
{
[UnityTest]
public IEnumerator RecursionDetectionHandlesComplexScriptsTest()
{
NetworkServer.Reset();
NetworkClient.ShutdownAll();
GameObject go = new GameObject();
go.name = "objectWithComplexScript";
go.AddComponent<UNetRecursionBehaviour>();
yield return null;
Assert.IsNotNull(GameObject.Find("objectWithComplexScript"));
yield return null;
Object.Destroy(go);
}
// Script with MANY MANY network attributes. Checks that the recursion detection in UNetWeaver wont generate a false positive on complex scripts.
public partial class UNetRecursionBehaviour : NetworkBehaviour
{
// 31 syncvars
[SyncVar]
public int var000;
[SyncVar]
public int var001;
[SyncVar]
public int var002;
[SyncVar]
public int var003;
[SyncVar]
public int var004;
[SyncVar]
public int var005;
[SyncVar]
public int var006;
[SyncVar]
public int var007;
[SyncVar]
public int var008;
[SyncVar]
public int var009;
[SyncVar]
public int var010;
[SyncVar]
public int var011;
[SyncVar]
public int var012;
[SyncVar]
public int var013;
[SyncVar]
public int var014;
[SyncVar]
public int var015;
[SyncVar]
public int var016;
[SyncVar]
public int var017;
[SyncVar]
public int var018;
[SyncVar]
public int var019;
[SyncVar]
public int var020;
[SyncVar]
public int var021;
[SyncVar]
public int var022;
[SyncVar]
public int var023;
[SyncVar]
public int var024;
[SyncVar]
public int var025;
[SyncVar]
public int var026;
[SyncVar]
public int var027;
[SyncVar]
public int var028;
[SyncVar]
public int var029;
[SyncVar]
public int var030;
// 50 Commands
[Command]
void CmdTest000(int p1, string p2) {}
[Command]
void CmdTest001(int p1, string p2) {}
[Command]
void CmdTest002(int p1, string p2) {}
[Command]
void CmdTest003(int p1, string p2) {}
[Command]
void CmdTest004(int p1, string p2) {}
[Command]
void CmdTest005(int p1, string p2) {}
[Command]
void CmdTest006(int p1, string p2) {}
[Command]
void CmdTest007(int p1, string p2) {}
[Command]
void CmdTest008(int p1, string p2) {}
[Command]
void CmdTest009(int p1, string p2) {}
[Command]
void CmdTest010(int p1, string p2) {}
[Command]
void CmdTest011(int p1, string p2) {}
[Command]
void CmdTest012(int p1, string p2) {}
[Command]
void CmdTest013(int p1, string p2) {}
[Command]
void CmdTest014(int p1, string p2) {}
[Command]
void CmdTest015(int p1, string p2) {}
[Command]
void CmdTest016(int p1, string p2) {}
[Command]
void CmdTest017(int p1, string p2) {}
[Command]
void CmdTest018(int p1, string p2) {}
[Command]
void CmdTest019(int p1, string p2) {}
[Command]
void CmdTest020(int p1, string p2) {}
[Command]
void CmdTest021(int p1, string p2) {}
[Command]
void CmdTest022(int p1, string p2) {}
[Command]
void CmdTest023(int p1, string p2) {}
[Command]
void CmdTest024(int p1, string p2) {}
[Command]
void CmdTest025(int p1, string p2) {}
[Command]
void CmdTest026(int p1, string p2) {}
[Command]
void CmdTest027(int p1, string p2) {}
[Command]
void CmdTest028(int p1, string p2) {}
[Command]
void CmdTest029(int p1, string p2) {}
[Command]
void CmdTest030(int p1, string p2) {}
[Command]
void CmdTest031(int p1, string p2) {}
[Command]
void CmdTest032(int p1, string p2) {}
[Command]
void CmdTest033(int p1, string p2) {}
[Command]
void CmdTest034(int p1, string p2) {}
[Command]
void CmdTest035(int p1, string p2) {}
[Command]
void CmdTest036(int p1, string p2) {}
[Command]
void CmdTest037(int p1, string p2) {}
[Command]
void CmdTest038(int p1, string p2) {}
[Command]
void CmdTest039(int p1, string p2) {}
[Command]
void CmdTest040(int p1, string p2) {}
[Command]
void CmdTest041(int p1, string p2) {}
[Command]
void CmdTest042(int p1, string p2) {}
[Command]
void CmdTest043(int p1, string p2) {}
[Command]
void CmdTest044(int p1, string p2) {}
[Command]
void CmdTest045(int p1, string p2) {}
[Command]
void CmdTest046(int p1, string p2) {}
[Command]
void CmdTest047(int p1, string p2) {}
[Command]
void CmdTest048(int p1, string p2) {}
[Command]
void CmdTest049(int p1, string p2) {}
// 100 ClientRpcs
[ClientRpc]
void RpcTest000(int p1, string p2) {}
[ClientRpc]
void RpcTest001(int p1, string p2) {}
[ClientRpc]
void RpcTest002(int p1, string p2) {}
[ClientRpc]
void RpcTest003(int p1, string p2) {}
[ClientRpc]
void RpcTest004(int p1, string p2) {}
[ClientRpc]
void RpcTest005(int p1, string p2) {}
[ClientRpc]
void RpcTest006(int p1, string p2) {}
[ClientRpc]
void RpcTest007(int p1, string p2) {}
[ClientRpc]
void RpcTest008(int p1, string p2) {}
[ClientRpc]
void RpcTest009(int p1, string p2) {}
[ClientRpc]
void RpcTest010(int p1, string p2) {}
[ClientRpc]
void RpcTest011(int p1, string p2) {}
[ClientRpc]
void RpcTest012(int p1, string p2) {}
[ClientRpc]
void RpcTest013(int p1, string p2) {}
[ClientRpc]
void RpcTest014(int p1, string p2) {}
[ClientRpc]
void RpcTest015(int p1, string p2) {}
[ClientRpc]
void RpcTest016(int p1, string p2) {}
[ClientRpc]
void RpcTest017(int p1, string p2) {}
[ClientRpc]
void RpcTest018(int p1, string p2) {}
[ClientRpc]
void RpcTest019(int p1, string p2) {}
[ClientRpc]
void RpcTest020(int p1, string p2) {}
[ClientRpc]
void RpcTest021(int p1, string p2) {}
[ClientRpc]
void RpcTest022(int p1, string p2) {}
[ClientRpc]
void RpcTest023(int p1, string p2) {}
[ClientRpc]
void RpcTest024(int p1, string p2) {}
[ClientRpc]
void RpcTest025(int p1, string p2) {}
[ClientRpc]
void RpcTest026(int p1, string p2) {}
[ClientRpc]
void RpcTest027(int p1, string p2) {}
[ClientRpc]
void RpcTest028(int p1, string p2) {}
[ClientRpc]
void RpcTest029(int p1, string p2) {}
[ClientRpc]
void RpcTest030(int p1, string p2) {}
[ClientRpc]
void RpcTest031(int p1, string p2) {}
[ClientRpc]
void RpcTest032(int p1, string p2) {}
[ClientRpc]
void RpcTest033(int p1, string p2) {}
[ClientRpc]
void RpcTest034(int p1, string p2) {}
[ClientRpc]
void RpcTest035(int p1, string p2) {}
[ClientRpc]
void RpcTest036(int p1, string p2) {}
[ClientRpc]
void RpcTest037(int p1, string p2) {}
[ClientRpc]
void RpcTest038(int p1, string p2) {}
[ClientRpc]
void RpcTest039(int p1, string p2) {}
[ClientRpc]
void RpcTest040(int p1, string p2) {}
[ClientRpc]
void RpcTest041(int p1, string p2) {}
[ClientRpc]
void RpcTest042(int p1, string p2) {}
[ClientRpc]
void RpcTest043(int p1, string p2) {}
[ClientRpc]
void RpcTest044(int p1, string p2) {}
[ClientRpc]
void RpcTest045(int p1, string p2) {}
[ClientRpc]
void RpcTest046(int p1, string p2) {}
[ClientRpc]
void RpcTest047(int p1, string p2) {}
[ClientRpc]
void RpcTest048(int p1, string p2) {}
[ClientRpc]
void RpcTest049(int p1, string p2) {}
[ClientRpc]
void RpcTest100(int p1, string p2) {}
[ClientRpc]
void RpcTest101(int p1, string p2) {}
[ClientRpc]
void RpcTest102(int p1, string p2) {}
[ClientRpc]
void RpcTest103(int p1, string p2) {}
[ClientRpc]
void RpcTest104(int p1, string p2) {}
[ClientRpc]
void RpcTest105(int p1, string p2) {}
[ClientRpc]
void RpcTest106(int p1, string p2) {}
[ClientRpc]
void RpcTest107(int p1, string p2) {}
[ClientRpc]
void RpcTest108(int p1, string p2) {}
[ClientRpc]
void RpcTest109(int p1, string p2) {}
[ClientRpc]
void RpcTest110(int p1, string p2) {}
[ClientRpc]
void RpcTest111(int p1, string p2) {}
[ClientRpc]
void RpcTest112(int p1, string p2) {}
[ClientRpc]
void RpcTest113(int p1, string p2) {}
[ClientRpc]
void RpcTest114(int p1, string p2) {}
[ClientRpc]
void RpcTest115(int p1, string p2) {}
[ClientRpc]
void RpcTest116(int p1, string p2) {}
[ClientRpc]
void RpcTest117(int p1, string p2) {}
[ClientRpc]
void RpcTest118(int p1, string p2) {}
[ClientRpc]
void RpcTest119(int p1, string p2) {}
[ClientRpc]
void RpcTest120(int p1, string p2) {}
[ClientRpc]
void RpcTest121(int p1, string p2) {}
[ClientRpc]
void RpcTest122(int p1, string p2) {}
[ClientRpc]
void RpcTest123(int p1, string p2) {}
[ClientRpc]
void RpcTest124(int p1, string p2) {}
[ClientRpc]
void RpcTest125(int p1, string p2) {}
[ClientRpc]
void RpcTest126(int p1, string p2) {}
[ClientRpc]
void RpcTest127(int p1, string p2) {}
[ClientRpc]
void RpcTest128(int p1, string p2) {}
[ClientRpc]
void RpcTest129(int p1, string p2) {}
[ClientRpc]
void RpcTest130(int p1, string p2) {}
[ClientRpc]
void RpcTest131(int p1, string p2) {}
[ClientRpc]
void RpcTest132(int p1, string p2) {}
[ClientRpc]
void RpcTest133(int p1, string p2) {}
[ClientRpc]
void RpcTest134(int p1, string p2) {}
[ClientRpc]
void RpcTest135(int p1, string p2) {}
[ClientRpc]
void RpcTest136(int p1, string p2) {}
[ClientRpc]
void RpcTest137(int p1, string p2) {}
[ClientRpc]
void RpcTest138(int p1, string p2) {}
[ClientRpc]
void RpcTest139(int p1, string p2) {}
[ClientRpc]
void RpcTest140(int p1, string p2) {}
[ClientRpc]
void RpcTest141(int p1, string p2) {}
[ClientRpc]
void RpcTest142(int p1, string p2) {}
[ClientRpc]
void RpcTest143(int p1, string p2) {}
[ClientRpc]
void RpcTest144(int p1, string p2) {}
[ClientRpc]
void RpcTest145(int p1, string p2) {}
[ClientRpc]
void RpcTest146(int p1, string p2) {}
[ClientRpc]
void RpcTest147(int p1, string p2) {}
[ClientRpc]
void RpcTest148(int p1, string p2) {}
[ClientRpc]
void RpcTest149(int p1, string p2) {}
}
}
#pragma warning restore 618