|
5 | 5 | using System.IO;
|
6 | 6 | using UnityEngine;
|
7 | 7 | using UnityEngine.Networking;
|
| 8 | +using UnityEngine.SceneManagement; |
8 | 9 |
|
9 | 10 | namespace MLAPI
|
10 | 11 | {
|
@@ -110,6 +111,7 @@ private ConnectionConfig Init(NetworkingConfiguration netConfig)
|
110 | 111 | NetworkSceneManager.sceneIndexToString.Add((uint)i, NetworkConfig.RegisteredScenes[i]);
|
111 | 112 | NetworkSceneManager.sceneNameToIndex.Add(NetworkConfig.RegisteredScenes[i], (uint)i);
|
112 | 113 | }
|
| 114 | + NetworkSceneManager.SetCurrentSceneIndex(); |
113 | 115 |
|
114 | 116 |
|
115 | 117 | HashSet<string> channelNames = new HashSet<string>();
|
@@ -475,6 +477,11 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
|
475 | 477 | using (BinaryReader messageReader = new BinaryReader(messageReadStream))
|
476 | 478 | {
|
477 | 479 | MyClientId = messageReader.ReadInt32();
|
| 480 | + uint sceneIndex = 0; |
| 481 | + if(NetworkConfig.EnableSceneSwitching) |
| 482 | + { |
| 483 | + sceneIndex = messageReader.ReadUInt32(); |
| 484 | + } |
478 | 485 | connectedClients.Add(MyClientId, new NetworkedClient() { ClientId = MyClientId });
|
479 | 486 | int clientCount = messageReader.ReadInt32();
|
480 | 487 | for (int i = 0; i < clientCount; i++)
|
@@ -503,6 +510,10 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
|
503 | 510 | }
|
504 | 511 | }
|
505 | 512 | }
|
| 513 | + if(NetworkConfig.EnableSceneSwitching) |
| 514 | + { |
| 515 | + NetworkSceneManager.OnSceneSwitch(sceneIndex); |
| 516 | + } |
506 | 517 | }
|
507 | 518 | }
|
508 | 519 | }
|
@@ -955,13 +966,22 @@ private void HandleApproval(int clientId, bool approved)
|
955 | 966 | {
|
956 | 967 | sizeOfStream += 4;
|
957 | 968 | sizeOfStream += 13 * amountOfObjectsToSend;
|
| 969 | + sizeOfStream += amountOfObjectsToSend; //Bool isActive |
| 970 | + } |
| 971 | + if(NetworkConfig.EnableSceneSwitching) |
| 972 | + { |
| 973 | + sizeOfStream += 4; |
958 | 974 | }
|
959 | 975 |
|
960 | 976 | using (MemoryStream writeStream = new MemoryStream(sizeOfStream))
|
961 | 977 | {
|
962 | 978 | using (BinaryWriter writer = new BinaryWriter(writeStream))
|
963 | 979 | {
|
964 | 980 | writer.Write(clientId);
|
| 981 | + if(NetworkConfig.EnableSceneSwitching) |
| 982 | + { |
| 983 | + writer.Write(NetworkSceneManager.CurrentSceneIndex); |
| 984 | + } |
965 | 985 | writer.Write(connectedClients.Count - 1);
|
966 | 986 | foreach (KeyValuePair<int, NetworkedClient> item in connectedClients)
|
967 | 987 | {
|
|
0 commit comments