Added networktime

This commit is contained in:
Albin Corén 2018-03-21 08:27:19 +01:00
parent 384dfbdab8
commit 9b76a81f1f

View File

@ -11,6 +11,7 @@ namespace MLAPI
{ {
public class NetworkingManager : MonoBehaviour public class NetworkingManager : MonoBehaviour
{ {
public static float NetworkTime;
public bool DontDestroy = true; public bool DontDestroy = true;
public bool RunInBackground = true; public bool RunInBackground = true;
public List<GameObject> SpawnablePrefabs; public List<GameObject> SpawnablePrefabs;
@ -73,6 +74,7 @@ namespace MLAPI
private ConnectionConfig Init(NetworkingConfiguration netConfig) private ConnectionConfig Init(NetworkingConfiguration netConfig)
{ {
NetworkConfig = netConfig; NetworkConfig = netConfig;
NetworkTime = 0f;
lastSendTickTime = 0; lastSendTickTime = 0;
lastEventTickTime = 0; lastEventTickTime = 0;
lastReceiveTickTime = 0; lastReceiveTickTime = 0;
@ -388,6 +390,7 @@ namespace MLAPI
NetworkedObject.InvokeSyncvarUpdate(); NetworkedObject.InvokeSyncvarUpdate();
lastEventTickTime = Time.time; lastEventTickTime = Time.time;
} }
NetworkTime += Time.deltaTime;
} }
} }
@ -545,6 +548,14 @@ namespace MLAPI
{ {
sceneIndex = messageReader.ReadUInt32(); sceneIndex = messageReader.ReadUInt32();
} }
float netTime = messageReader.ReadSingle();
int remoteStamp = messageReader.ReadInt32();
int msDelay = NetworkTransport.GetRemoteDelayTimeMS(hostId, clientId, remoteStamp, out error);
if ((NetworkError)error != NetworkError.Ok)
msDelay = 0;
NetworkTime = netTime + (msDelay / 1000f);
connectedClients.Add(MyClientId, new NetworkedClient() { ClientId = MyClientId }); connectedClients.Add(MyClientId, new NetworkedClient() { ClientId = MyClientId });
int clientCount = messageReader.ReadInt32(); int clientCount = messageReader.ReadInt32();
for (int i = 0; i < clientCount; i++) for (int i = 0; i < clientCount; i++)
@ -1124,7 +1135,7 @@ namespace MLAPI
} }
int sizeOfStream = 4 + 4 + ((connectedClients.Count - 1) * 4); int sizeOfStream = 16 + ((connectedClients.Count - 1) * 4);
int amountOfObjectsToSend = 0; int amountOfObjectsToSend = 0;
foreach (KeyValuePair<uint, NetworkedObject> pair in SpawnManager.spawnedObjects) foreach (KeyValuePair<uint, NetworkedObject> pair in SpawnManager.spawnedObjects)
{ {
@ -1136,8 +1147,7 @@ namespace MLAPI
if(NetworkConfig.HandleObjectSpawning) if(NetworkConfig.HandleObjectSpawning)
{ {
sizeOfStream += 4; sizeOfStream += 4;
sizeOfStream += 13 * amountOfObjectsToSend; sizeOfStream += 14 * amountOfObjectsToSend;
sizeOfStream += amountOfObjectsToSend; //Bool isActive
} }
if(NetworkConfig.EnableSceneSwitching) if(NetworkConfig.EnableSceneSwitching)
{ {
@ -1153,6 +1163,8 @@ namespace MLAPI
{ {
writer.Write(NetworkSceneManager.CurrentSceneIndex); writer.Write(NetworkSceneManager.CurrentSceneIndex);
} }
writer.Write(NetworkTime);
writer.Write(NetworkTransport.GetNetworkTimestamp());
writer.Write(connectedClients.Count - 1); writer.Write(connectedClients.Count - 1);
foreach (KeyValuePair<int, NetworkedClient> item in connectedClients) foreach (KeyValuePair<int, NetworkedClient> item in connectedClients)
{ {