diff --git a/Assets/Audio/cash.mp3 b/Assets/Audio/cash.mp3 new file mode 100644 index 0000000..2f89711 Binary files /dev/null and b/Assets/Audio/cash.mp3 differ diff --git a/Assets/Audio/cash.mp3.meta b/Assets/Audio/cash.mp3.meta new file mode 100644 index 0000000..65a3ea5 --- /dev/null +++ b/Assets/Audio/cash.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 804210a68d2015b4287853b3629595f9 +AudioImporter: + externalObjects: {} + serializedVersion: 8 + 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/Scenes/Island.unity b/Assets/Scenes/Island.unity index f84bd51..53de993 100644 --- a/Assets/Scenes/Island.unity +++ b/Assets/Scenes/Island.unity @@ -4941,8 +4941,6 @@ MonoBehaviour: _gameManager: {fileID: 1875710079} _sandPathBuildService: {fileID: 305503} _spawnDeathControl: {fileID: 694046010} - _tower: {fileID: 1739395621} - _blockDetector: {fileID: 709556715} --- !u!1 &645921916 GameObject: m_ObjectHideFlags: 0 @@ -9108,6 +9106,135 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081292793} m_CullTransparentMesh: 1 +--- !u!1 &1087951939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1087951941} + - component: {fileID: 1087951940} + m_Layer: 0 + m_Name: CashSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!82 &1087951940 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1087951939} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_Resource: {fileID: 8300000, guid: 804210a68d2015b4287853b3629595f9, type: 3} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 0 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!4 &1087951941 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1087951939} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1431145624} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1127156135 GameObject: m_ObjectHideFlags: 0 @@ -11210,11 +11337,14 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 44efdad54537f514eb583c74783d7f0e, type: 3} m_Name: m_EditorClassIdentifier: '::' + _wallet: {fileID: 1030979928} _grassBlockDestroySound: - {fileID: 1641086313} - {fileID: 1127156137} - {fileID: 1128613022} - {fileID: 1573731472} + _moneyChangeSound: + - {fileID: 1087951940} --- !u!4 &1431145624 Transform: m_ObjectHideFlags: 0 @@ -11232,6 +11362,7 @@ Transform: - {fileID: 1127156136} - {fileID: 1128613021} - {fileID: 1573731473} + - {fileID: 1087951941} m_Father: {fileID: 481586150} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1439091071 diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs index 9e2fb24..3d28799 100644 --- a/Assets/Scripts/AudioManager.cs +++ b/Assets/Scripts/AudioManager.cs @@ -2,8 +2,26 @@ using UnityEngine; public class AudioManager : MonoBehaviour { + [SerializeField] private Wallet _wallet; [SerializeField] private AudioSource[] _grassBlockDestroySound; + [SerializeField] private AudioSource[] _moneyChangeSound; + private int _grassSoundIndex = 0; + private int _moneyChangeSoundIndex = 0; + + private int _money; + + private void OnEnable() + { + _money = _wallet.Money; + + _wallet.OnMoneyChanged += OnMoneyChanged; + } + + private void OnDisable() + { + _wallet.OnMoneyChanged -= OnMoneyChanged; + } public void PlayBlockDestroySound(BlockScript block) { @@ -19,4 +37,16 @@ public class AudioManager : MonoBehaviour break; } } + + private void OnMoneyChanged(int money) + { + var oldMoney = _money; + _money = money; + + if (_moneyChangeSound.Length == 0 || oldMoney <= money) + return; + + _moneyChangeSound[_moneyChangeSoundIndex].Play(); + _moneyChangeSoundIndex = (_moneyChangeSoundIndex + 1) % _moneyChangeSound.Length; + } }