From a4d4850cd3e2d17ffa952203f86bf4fbe54a01c2 Mon Sep 17 00:00:00 2001 From: cross28 Date: Mon, 18 Apr 2022 04:49:39 -0500 Subject: feat: code cleanup for audio manager --- Assets/Scripts/Actors/Actor.cs | 4 ++++ Assets/Scripts/Actors/Player.cs | 4 +++- Assets/Scripts/AudioManager.cs | 24 ++++++++++++++---------- 3 files changed, 21 insertions(+), 11 deletions(-) (limited to 'Assets/Scripts') diff --git a/Assets/Scripts/Actors/Actor.cs b/Assets/Scripts/Actors/Actor.cs index e7f1a83..eb8185e 100644 --- a/Assets/Scripts/Actors/Actor.cs +++ b/Assets/Scripts/Actors/Actor.cs @@ -21,9 +21,11 @@ namespace MontanaJohns.Actors protected SpriteRenderer _renderer; protected Animator _animator; protected Transform _transform; + protected AudioManager _audio; protected Active activeItem; protected bool isGrappling; + protected bool isMoving; protected Vector2? grapplePoint = null; protected LayerMask groundLayers; protected Collection items; @@ -42,6 +44,7 @@ namespace MontanaJohns.Actors _transform = GetComponent(); _renderer = GetComponent(); _animator = GetComponent(); + _audio = FindObjectOfType(); groundLayers = LayerMask.GetMask("Grapple", "Ground"); _rigidBody.freezeRotation = true; @@ -73,6 +76,7 @@ namespace MontanaJohns.Actors var target = new Vector2(input * stats.speedMultiplier * 10, _rigidBody.velocity.y); _rigidBody.velocity = Vector2.SmoothDamp(_rigidBody.velocity, target, ref acceleration, .05f); _animator.SetBool("moving", Mathf.Abs(_rigidBody.velocity.x) > 1); + isMoving = Mathf.Abs(_rigidBody.velocity.x) > 1; if (_rigidBody.velocity.x < -0.1) { _renderer.flipX = true; diff --git a/Assets/Scripts/Actors/Player.cs b/Assets/Scripts/Actors/Player.cs index 0483be5..8535a41 100644 --- a/Assets/Scripts/Actors/Player.cs +++ b/Assets/Scripts/Actors/Player.cs @@ -55,6 +55,8 @@ namespace MontanaJohns.Actors else { base.Move(move.ReadValue().x); + if (isMoving && !_animator.GetBool("airborn") && !_audio.isPlaying("RunningOnGrass")) _audio.Play("RunningOnGrass"); + else if (!isMoving || _animator.GetBool("airborn")) _audio.Stop("RunningOnGrass"); } DeathCheck(); } @@ -78,7 +80,7 @@ namespace MontanaJohns.Actors protected void Fire() { Instantiate(projectilePrefab, firePoint.position, firePoint.rotation); - FindObjectOfType().Play("Gunshot"); + _audio.Play("Gunshot"); } } } \ No newline at end of file diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs index 1809375..ccb8ebc 100644 --- a/Assets/Scripts/AudioManager.cs +++ b/Assets/Scripts/AudioManager.cs @@ -6,18 +6,8 @@ public class AudioManager : MonoBehaviour { public Sound[] sounds; - public static AudioManager instance; - private void Awake() { - if (instance == null) instance = this; - else { - Destroy(gameObject); - return; - } - - DontDestroyOnLoad(gameObject); - foreach (Sound s in sounds) { s.source = gameObject.AddComponent(); s.source.clip = s.clip; @@ -41,4 +31,18 @@ public class AudioManager : MonoBehaviour } s.source.Play(); } + + public void Stop(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) return; + s.source.Stop(); + } + + public bool isPlaying(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) return false; + return s.source.isPlaying; + } } -- cgit v1.2.3-70-g09d2