diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index fde95d2..e5bd9df 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -408,6 +408,8 @@ namespace Marro.PacManUdon ghostManager.CollectSyncedData(data, ref index, eventType); pacMan.CollectSyncedData(data, ref index, eventType); + + soundManager.CollectSyncedData(data, ref index, eventType); } public override bool WriteSyncedData(byte[] data, ref int index, NetworkEventType eventType) @@ -447,6 +449,8 @@ namespace Marro.PacManUdon pacMan.WriteSyncedData(data, ref index, eventType); + soundManager.WriteSyncedData(data, ref index, eventType); + return true; } diff --git a/Assets/Scripts/SoundManager.cs b/Assets/Scripts/SoundManager.cs index b265a5d..41c0f5b 100644 --- a/Assets/Scripts/SoundManager.cs +++ b/Assets/Scripts/SoundManager.cs @@ -1,4 +1,5 @@  +using JetBrains.Annotations; using Marro.PacManUdon; using UnityEngine; @@ -27,13 +28,13 @@ public class SoundManager : SyncedObject [SerializeField] private AudioClip siren3; [SerializeField] private AudioClip siren4; - private AudioClip _nextDotSound; - private bool _ghostRetreating; - private bool _ghostBlue; - private int _ghostSoundLevel; - private bool _currentlyPlayingSiren; + private bool alternatePelletSound; + private bool ghostRetreating; + private bool ghostBlue; + private int ghostSoundLevel; + private bool currentlyPlayingSiren; - private bool _suppress; + private bool suppress; public void Initialize() { @@ -44,19 +45,19 @@ public class SoundManager : SyncedObject { StopAllSound(); - _nextDotSound = pacDot2; + alternatePelletSound = false; - _ghostRetreating = false; - _ghostBlue = false; - _ghostSoundLevel = 0; - _currentlyPlayingSiren = false; + ghostRetreating = false; + ghostBlue = false; + ghostSoundLevel = 0; + currentlyPlayingSiren = false; - _suppress = true; + suppress = true; } public void SuppressSound(bool suppress) { - _suppress = suppress; + this.suppress = suppress; if (suppress) { @@ -76,8 +77,8 @@ public class SoundManager : SyncedObject public void PlayPelletSound() { - PlaySound(audioSourcePacMan, _nextDotSound); - _nextDotSound = _nextDotSound == pacDot1 ? pacDot2 : pacDot1; + PlaySound(audioSourcePacMan, alternatePelletSound ? pacDot2 : pacDot1); + alternatePelletSound = !alternatePelletSound; } public void PlayDeathSound() @@ -112,13 +113,13 @@ public class SoundManager : SyncedObject public void SetGhostBlue(bool isBlue) { - _ghostBlue = isBlue; + ghostBlue = isBlue; UpdateGhostSound(); } public void SetGhostRetreat(bool isRetreating) { - _ghostRetreating = isRetreating; + ghostRetreating = isRetreating; UpdateGhostSound(); } @@ -151,19 +152,19 @@ public class SoundManager : SyncedObject // Debug.Log($"UpdatePelletCount: {pelletCount}, level: {level}"); - if (_ghostSoundLevel >= level) + if (ghostSoundLevel >= level) { return; } - _ghostSoundLevel = level; + ghostSoundLevel = level; UpdateGhostSound(); } private void PlaySound(AudioSource audioSource, AudioClip audioClip, bool loop = false) { // Debug.Log($"PlaySound, audioSource: {audioSource}, audioClip: {audioClip}, loop: {loop}, suppress: {_suppress}"); - if (_suppress) + if (suppress) { return; } @@ -181,7 +182,7 @@ public class SoundManager : SyncedObject private void SwitchSound(AudioSource audioSource, AudioClip audioClip, bool loop) { - if (_suppress) + if (suppress) { return; } @@ -207,22 +208,22 @@ public class SoundManager : SyncedObject private void UpdateGhostSound() { - if (_ghostRetreating) + if (ghostRetreating) { PlaySound(audioSourceGhosts, pacGhostRetreat, true); - _currentlyPlayingSiren = false; + currentlyPlayingSiren = false; return; } - if (_ghostBlue) + if (ghostBlue) { PlaySound(audioSourceGhosts, pacGhostBlue, true); - _currentlyPlayingSiren = false; + currentlyPlayingSiren = false; return; } - var currentGhostLevelSound = GetSoundForGhostLevel(_ghostSoundLevel); - if (_currentlyPlayingSiren) + var currentGhostLevelSound = GetSoundForGhostLevel(ghostSoundLevel); + if (currentlyPlayingSiren) { SwitchSound(audioSourceGhosts, currentGhostLevelSound, true); } @@ -231,7 +232,7 @@ public class SoundManager : SyncedObject PlaySound(audioSourceGhosts, currentGhostLevelSound, true); } - _currentlyPlayingSiren = true; + currentlyPlayingSiren = true; } private AudioClip GetSoundForGhostLevel(int ghostLevel) @@ -253,11 +254,23 @@ public class SoundManager : SyncedObject public override void CollectSyncedData(byte[] data, ref int index, NetworkEventType eventType) { - + data.Append(alternatePelletSound, ref index); + data.Append(ghostRetreating, ref index); + data.Append(ghostBlue, ref index); + data.AppendAsByte(ghostSoundLevel, ref index); + data.Append(currentlyPlayingSiren, ref index); } public override bool WriteSyncedData(byte[] data, ref int index, NetworkEventType eventType) { + alternatePelletSound = data.ReadBool(ref index); + ghostRetreating = data.ReadBool(ref index); + ghostBlue = data.ReadBool(ref index); + ghostSoundLevel = data.ReadByte(ref index); + currentlyPlayingSiren = data.ReadBool(ref index); + + UpdateGhostSound(); + return true; } }