diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 052eb5a..ec21a41 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -423,16 +423,16 @@ namespace Marro.PacManUdon if (eventType == NetworkEventType.TimeSequenceSync) { var currentlyInTimeSequence = data.ReadBool(ref index); - if (!currentlyInTimeSequence) - { - TimeSequenceTryEndCurrent(); - } - else + if (currentlyInTimeSequence) { var currentTimeSequence = (PacManTimeSequence)data.ReadByte(ref index); var timeSequenceSecondsPassed = data.ReadFloat(ref index); TimeSequenceSyncWithRemote(currentTimeSequence, timeSequenceSecondsPassed); } + else + { + TimeSequenceTryEndCurrent(); + } } //SetGameState((PacManGameState)data[offset++]); diff --git a/Assets/Scripts/GridMover.cs b/Assets/Scripts/GridMover.cs index 8d03faf..e5ea4e4 100644 --- a/Assets/Scripts/GridMover.cs +++ b/Assets/Scripts/GridMover.cs @@ -36,6 +36,11 @@ namespace Marro.PacManUdon data.Append(GetDirection(), ref index); } + public void PadSyncedData(byte[] data, ref int index, NetworkEventType eventType) + { + index += 16; + } + public override bool WriteSyncedData(byte[] data, ref int index, NetworkEventType eventType) { SetPosition(data.ReadVector2(ref index)); @@ -43,5 +48,12 @@ namespace Marro.PacManUdon return true; } + + public bool ConsumeSyncedData(byte[] data, ref int index, NetworkEventType eventType) + { + index += 16; + + return true; + } } } \ No newline at end of file diff --git a/Assets/Scripts/PacMan.cs b/Assets/Scripts/PacMan.cs index 232d9fa..6022132 100644 --- a/Assets/Scripts/PacMan.cs +++ b/Assets/Scripts/PacMan.cs @@ -340,11 +340,18 @@ namespace Marro.PacManUdon public override void CollectSyncedData(byte[] data, ref int index, NetworkEventType eventType) { - if (eventType != NetworkEventType.PacManTurn || kinematic || frozen || !enabled) + if (eventType != NetworkEventType.PacManTurn) { return; } + if (kinematic || frozen || !enabled) + { + index += 8; + base.PadSyncedData(data, ref index, eventType); + return; + } + data.Append(targetDirection, ref index); base.CollectSyncedData(data, ref index, eventType); @@ -352,11 +359,17 @@ namespace Marro.PacManUdon public override bool WriteSyncedData(byte[] data, ref int index, NetworkEventType eventType) { - if (eventType != NetworkEventType.PacManTurn || kinematic || frozen || !enabled) + if (eventType != NetworkEventType.PacManTurn) { return true; } + if (kinematic || frozen || !enabled) + { + index += 8; + base.ConsumeSyncedData(data, ref index, eventType); + } + SetTargetDirection(data.ReadVector2(ref index)); return base.WriteSyncedData(data, ref index, eventType); diff --git a/Assets/Test stuff/NetworkManagerTester.cs b/Assets/Test stuff/NetworkManagerTester.cs index a7a10bc..92081d7 100644 --- a/Assets/Test stuff/NetworkManagerTester.cs +++ b/Assets/Test stuff/NetworkManagerTester.cs @@ -18,7 +18,10 @@ public class NetworkManagerTester : UdonSharpBehaviour foreach (var networkManager in networkManagers) { networkManager.SetNetworkManagerTester(this); - networkManager.Reset(); + if (networkManager.Ready) + { + networkManager.Reset(); + } } }