diff --git a/Assets/Scripts/GameController.cs b/Assets/Scripts/GameController.cs index c1da569..081eaaa 100644 --- a/Assets/Scripts/GameController.cs +++ b/Assets/Scripts/GameController.cs @@ -215,6 +215,7 @@ namespace Marro.PacManUdon public void GotFruit() { AddScore(bonusFruit.Collected()); + soundManager.PlayFruitSound(); } public void GhostCaught(int scoreBonus) @@ -1156,6 +1157,7 @@ namespace Marro.PacManUdon case 0: SetGameState(PacManGameState.WaitForStart); HideEverything(); + soundManager.PlayCoinSound(); break; case 1: SetPressStartButtonScreenVisible(true); @@ -1252,6 +1254,7 @@ namespace Marro.PacManUdon case 0: // Freeze SetFrozen(true); + soundManager.StopAllSound(); break; case 1: // Start board blinking, hide pellets in case of rack test @@ -1327,6 +1330,7 @@ namespace Marro.PacManUdon // Freeze and hide pacman, but let ghosts already in the caught animation continue SetFrozen(true, ghostIgnoreIfCaught: true); SetPacManActive(false); + soundManager.PlayGhostEatSound(); break; case 1: // Unfreeze and reveal pacman @@ -1344,6 +1348,7 @@ namespace Marro.PacManUdon case 0: // Freeze (except for the ghost animations) SetFrozen(true, ghostKeepAnimating: true); + soundManager.StopAllSound(); break; case 1: // Hide ghosts, start pacman death animation @@ -1409,6 +1414,7 @@ namespace Marro.PacManUdon case 5: // Unfreeze SetFrozen(false); + soundManager.StartGhostSound(); break; } } diff --git a/Assets/Scripts/SoundManager.asset b/Assets/Scripts/SoundManager.asset index c20fe62..e91b95a 100644 --- a/Assets/Scripts/SoundManager.asset +++ b/Assets/Scripts/SoundManager.asset @@ -43,7 +43,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 7 + Data: 10 - Name: Entry: 7 Data: @@ -331,13 +331,13 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: pacGhost1 + Data: pacFruit - Name: $v Entry: 7 Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: pacGhost1 + Data: pacFruit - Name: k__BackingField Entry: 9 Data: 10 @@ -385,10 +385,172 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: nextDotSound + Data: pacCoin - Name: $v Entry: 7 Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: pacCoin + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: pacGhostEat + - Name: $v + Entry: 7 + Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: pacGhostEat + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 27|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: pacGhost1 + - Name: $v + Entry: 7 + Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: pacGhost1 + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 9 + Data: 10 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: nextDotSound + - Name: $v + Entry: 7 + Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: nextDotSound @@ -412,7 +574,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/Assets/Scripts/SoundManager.cs b/Assets/Scripts/SoundManager.cs index c34b098..451fa17 100644 --- a/Assets/Scripts/SoundManager.cs +++ b/Assets/Scripts/SoundManager.cs @@ -12,6 +12,9 @@ public class SoundManager : UdonSharpBehaviour [SerializeField] private AudioClip pacStart; [SerializeField] private AudioClip pacDot1; [SerializeField] private AudioClip pacDot2; + [SerializeField] private AudioClip pacFruit; + [SerializeField] private AudioClip pacCoin; + [SerializeField] private AudioClip pacGhostEat; [SerializeField] private AudioClip pacGhost1; private AudioClip nextDotSound; @@ -32,11 +35,32 @@ public class SoundManager : UdonSharpBehaviour nextDotSound = nextDotSound == pacDot1 ? pacDot2 : pacDot1; } + public void PlayFruitSound() + { + PlaySound(audioSourcePlayer, pacFruit); + } + + public void PlayCoinSound() + { + PlaySound(audioSourcePlayer, pacCoin); + } + + public void PlayGhostEatSound() + { + PlaySound(audioSourcePlayer, pacGhostEat); + } + public void StartGhostSound() { PlaySound(audioSourceGhosts, pacGhost1, true); } + public void StopAllSound() + { + audioSourcePlayer.Stop(); + audioSourceGhosts.Stop(); + } + private void PlaySound(AudioSource audioSource, AudioClip audioClip, bool loop = false) { audioSource.clip = audioClip; diff --git a/Assets/Sounds/paccoin.wav b/Assets/Sounds/paccoin.wav new file mode 100644 index 0000000..367b648 Binary files /dev/null and b/Assets/Sounds/paccoin.wav differ diff --git a/Assets/Sounds/paccoin.wav.meta b/Assets/Sounds/paccoin.wav.meta new file mode 100644 index 0000000..e76fdb6 --- /dev/null +++ b/Assets/Sounds/paccoin.wav.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 77fe0b5680863514e8dadf65bbdae1ba +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sounds/pacdot1.wav b/Assets/Sounds/pacdot1.wav index 2b0791f..ff38a13 100644 Binary files a/Assets/Sounds/pacdot1.wav and b/Assets/Sounds/pacdot1.wav differ diff --git a/Assets/Sounds/pacdot2.wav b/Assets/Sounds/pacdot2.wav index 991b1ae..617ac2e 100644 Binary files a/Assets/Sounds/pacdot2.wav and b/Assets/Sounds/pacdot2.wav differ diff --git a/Assets/Sounds/pacfruit.wav b/Assets/Sounds/pacfruit.wav new file mode 100644 index 0000000..5773b07 Binary files /dev/null and b/Assets/Sounds/pacfruit.wav differ diff --git a/Assets/Sounds/pacfruit.wav.meta b/Assets/Sounds/pacfruit.wav.meta new file mode 100644 index 0000000..762009a --- /dev/null +++ b/Assets/Sounds/pacfruit.wav.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 38b046b5cc294fe498cf3e0bd6682f98 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sounds/pacghosteat.wav b/Assets/Sounds/pacghosteat.wav new file mode 100644 index 0000000..6f4c012 Binary files /dev/null and b/Assets/Sounds/pacghosteat.wav differ diff --git a/Assets/Sounds/pacghosteat.wav.meta b/Assets/Sounds/pacghosteat.wav.meta new file mode 100644 index 0000000..fdd54c9 --- /dev/null +++ b/Assets/Sounds/pacghosteat.wav.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: b4d0f00ea7f448140b701a2cd61719f2 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: