|
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