@@ -11,6 +11,7 @@ namespace MLAPI
11
11
{
12
12
public class NetworkingManager : MonoBehaviour
13
13
{
14
+ public static float NetworkTime ;
14
15
public bool DontDestroy = true ;
15
16
public bool RunInBackground = true ;
16
17
public List < GameObject > SpawnablePrefabs ;
@@ -73,6 +74,7 @@ private void OnValidate()
73
74
private ConnectionConfig Init ( NetworkingConfiguration netConfig )
74
75
{
75
76
NetworkConfig = netConfig ;
77
+ NetworkTime = 0f ;
76
78
lastSendTickTime = 0 ;
77
79
lastEventTickTime = 0 ;
78
80
lastReceiveTickTime = 0 ;
@@ -388,6 +390,7 @@ private void Update()
388
390
NetworkedObject . InvokeSyncvarUpdate ( ) ;
389
391
lastEventTickTime = Time . time ;
390
392
}
393
+ NetworkTime += Time . deltaTime ;
391
394
}
392
395
}
393
396
@@ -545,6 +548,14 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
545
548
{
546
549
sceneIndex = messageReader . ReadUInt32 ( ) ;
547
550
}
551
+
552
+ float netTime = messageReader . ReadSingle ( ) ;
553
+ int remoteStamp = messageReader . ReadInt32 ( ) ;
554
+ int msDelay = NetworkTransport . GetRemoteDelayTimeMS ( hostId , clientId , remoteStamp , out error ) ;
555
+ if ( ( NetworkError ) error != NetworkError . Ok )
556
+ msDelay = 0 ;
557
+ NetworkTime = netTime + ( msDelay / 1000f ) ;
558
+
548
559
connectedClients . Add ( MyClientId , new NetworkedClient ( ) { ClientId = MyClientId } ) ;
549
560
int clientCount = messageReader . ReadInt32 ( ) ;
550
561
for ( int i = 0 ; i < clientCount ; i ++ )
@@ -1124,7 +1135,7 @@ private void HandleApproval(int clientId, bool approved)
1124
1135
}
1125
1136
1126
1137
1127
- int sizeOfStream = 4 + 4 + ( ( connectedClients . Count - 1 ) * 4 ) ;
1138
+ int sizeOfStream = 16 + ( ( connectedClients . Count - 1 ) * 4 ) ;
1128
1139
int amountOfObjectsToSend = 0 ;
1129
1140
foreach ( KeyValuePair < uint , NetworkedObject > pair in SpawnManager . spawnedObjects )
1130
1141
{
@@ -1136,8 +1147,7 @@ private void HandleApproval(int clientId, bool approved)
1136
1147
if ( NetworkConfig . HandleObjectSpawning )
1137
1148
{
1138
1149
sizeOfStream += 4 ;
1139
- sizeOfStream += 13 * amountOfObjectsToSend ;
1140
- sizeOfStream += amountOfObjectsToSend ; //Bool isActive
1150
+ sizeOfStream += 14 * amountOfObjectsToSend ;
1141
1151
}
1142
1152
if ( NetworkConfig . EnableSceneSwitching )
1143
1153
{
@@ -1153,6 +1163,8 @@ private void HandleApproval(int clientId, bool approved)
1153
1163
{
1154
1164
writer . Write ( NetworkSceneManager . CurrentSceneIndex ) ;
1155
1165
}
1166
+ writer . Write ( NetworkTime ) ;
1167
+ writer . Write ( NetworkTransport . GetNetworkTimestamp ( ) ) ;
1156
1168
writer . Write ( connectedClients . Count - 1 ) ;
1157
1169
foreach ( KeyValuePair < int , NetworkedClient > item in connectedClients )
1158
1170
{
0 commit comments