1
1
using System ;
2
2
using UnityEngine ;
3
3
using MLAPI . NetworkVariable ;
4
+ using MLAPI . NetworkVariable . Collections ;
4
5
5
6
namespace MLAPI
6
7
{
@@ -10,7 +11,12 @@ namespace MLAPI
10
11
[ AddComponentMenu ( "MLAPI/ManualNetworkVariableTest" ) ]
11
12
public class ManualNetworkVariableTest : NetworkBehaviour
12
13
{
13
- private NetworkVariable < int > m_TestVar ;
14
+ // testing NetworkList
15
+ private NetworkList < string > m_TestList = new NetworkList < string > ( ) ;
16
+ private bool m_GotNetworkList = false ;
17
+
18
+ // testing NetworkVariable, especially ticks
19
+ private NetworkVariable < int > m_TestVar = new NetworkVariable < int > ( ) ;
14
20
private int m_MinDelta = 0 ;
15
21
private int m_MaxDelta = 0 ;
16
22
private int m_LastRemoteTick = 0 ;
@@ -22,25 +28,39 @@ public class ManualNetworkVariableTest : NetworkBehaviour
22
28
23
29
void Start ( )
24
30
{
25
- m_TestVar . OnValueChanged = ValueChanged ;
31
+ m_TestVar . OnValueChanged + = ValueChanged ;
26
32
m_TestVar . Settings . WritePermission = NetworkVariablePermission . Everyone ;
27
33
34
+ m_TestList . OnListChanged += ListChanged ;
35
+ m_TestList . Settings . WritePermission = NetworkVariablePermission . OwnerOnly ;
36
+
28
37
if ( IsOwner )
29
38
{
30
39
m_TestVar . Value = 0 ;
40
+ Debug . Log ( "We'll be sending " + MyMessage ( ) ) ;
31
41
}
32
42
}
33
43
34
- void Awake ( )
35
- {
36
- Debug . Log ( "Awake" ) ;
37
- }
38
-
39
44
private void FixedUpdate ( )
40
45
{
41
46
if ( IsOwner )
42
47
{
43
48
m_TestVar . Value = m_TestVar . Value + 1 ;
49
+ m_TestList . Add ( MyMessage ( ) ) ;
50
+ }
51
+ }
52
+
53
+ private string MyMessage ( )
54
+ {
55
+ return "Message from " + NetworkObjectId ;
56
+ }
57
+
58
+ private void ListChanged ( NetworkListEvent < string > listEvent )
59
+ {
60
+ if ( ! IsOwner && ! m_GotNetworkList )
61
+ {
62
+ Debug . Log ( "Received: " + listEvent . Value ) ;
63
+ m_GotNetworkList = true ;
44
64
}
45
65
}
46
66
@@ -84,19 +104,25 @@ private void ValueChanged(int before, int after)
84
104
{
85
105
// Let's be reasonable and allow a 5 tick difference
86
106
// that could be due to timing difference, lag, queueing
87
- if ( m_Problems == "" && Math . Abs ( m_MaxDelta - m_MinDelta ) < 5 )
107
+
108
+ if ( ! m_GotNetworkList )
109
+ {
110
+ m_Problems += "Didn't receive any NetworkList updates from other machines" ;
111
+ }
112
+
113
+ if ( Math . Abs ( m_MaxDelta - m_MinDelta ) > 5 )
114
+ {
115
+ m_Problems += "Delta range: " + m_MinDelta + " + " + m_MaxDelta + "\n " ;
116
+ }
117
+
118
+ if ( m_Problems == "" )
88
119
{
89
120
Debug . Log ( "**** TEST PASSED ****" ) ;
90
121
}
91
122
else
92
123
{
93
124
Debug . Log ( "**** TEST FAILED ****" ) ;
94
- Debug . Log ( $ "Delta range: { m_MinDelta } , { m_MaxDelta } ") ;
95
-
96
- if ( m_Problems != "" )
97
- {
98
- Debug . Log ( m_Problems ) ;
99
- }
125
+ Debug . Log ( m_Problems ) ;
100
126
}
101
127
enabled = false ;
102
128
}
0 commit comments