diff options
author | cross28 <45377355+cross28@users.noreply.github.com> | 2022-04-18 05:06:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-18 05:06:16 -0500 |
commit | b11db6ce1af50c7f76f17b3797c76275f81801d2 (patch) | |
tree | 4bad1628cc223bbd40bd5a593c8bf9576fda0402 /Assets/Scripts | |
parent | ea94c8f0bdb549de1d50b471ac022965f20cdd72 (diff) | |
parent | a4d4850cd3e2d17ffa952203f86bf4fbe54a01c2 (diff) |
Merge pull request #5 from MontanaJohns/projectile-improvements
Projectile improvements
Diffstat (limited to 'Assets/Scripts')
-rw-r--r-- | Assets/Scripts/Actors/Actor.cs | 6 | ||||
-rw-r--r-- | Assets/Scripts/Actors/Player.cs | 3 | ||||
-rw-r--r-- | Assets/Scripts/AudioManager.cs | 48 | ||||
-rw-r--r-- | Assets/Scripts/AudioManager.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/Items/Whip.cs | 2 | ||||
-rw-r--r-- | Assets/Scripts/Projectile.cs | 10 | ||||
-rw-r--r-- | Assets/Scripts/Sound.cs | 20 | ||||
-rw-r--r-- | Assets/Scripts/Sound.cs.meta | 11 |
8 files changed, 105 insertions, 6 deletions
diff --git a/Assets/Scripts/Actors/Actor.cs b/Assets/Scripts/Actors/Actor.cs index 96c67c2..eb8185e 100644 --- a/Assets/Scripts/Actors/Actor.cs +++ b/Assets/Scripts/Actors/Actor.cs @@ -1,6 +1,4 @@ -using System; using System.Collections; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using MontanaJohns.Core; @@ -23,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<Item> items; @@ -44,6 +44,7 @@ namespace MontanaJohns.Actors _transform = GetComponent<Transform>(); _renderer = GetComponent<SpriteRenderer>(); _animator = GetComponent<Animator>(); + _audio = FindObjectOfType<AudioManager>(); groundLayers = LayerMask.GetMask("Grapple", "Ground"); _rigidBody.freezeRotation = true; @@ -75,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 589d661..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<Vector2>().x); + if (isMoving && !_animator.GetBool("airborn") && !_audio.isPlaying("RunningOnGrass")) _audio.Play("RunningOnGrass"); + else if (!isMoving || _animator.GetBool("airborn")) _audio.Stop("RunningOnGrass"); } DeathCheck(); } @@ -78,6 +80,7 @@ namespace MontanaJohns.Actors protected void Fire() { Instantiate(projectilePrefab, firePoint.position, firePoint.rotation); + _audio.Play("Gunshot"); } } }
\ No newline at end of file diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs new file mode 100644 index 0000000..ccb8ebc --- /dev/null +++ b/Assets/Scripts/AudioManager.cs @@ -0,0 +1,48 @@ +using System; +using UnityEngine; +using UnityEngine.Audio; + +public class AudioManager : MonoBehaviour +{ + public Sound[] sounds; + + private void Awake() + { + foreach (Sound s in sounds) { + s.source = gameObject.AddComponent<AudioSource>(); + s.source.clip = s.clip; + s.source.volume = s.volume; + s.source.pitch = s.pitch; + s.source.loop = s.loop; + } + } + + private void Start() + { + Play("BackgroundMusic"); + } + + public void Play(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) { + Debug.LogWarning("Sound Error: " + name + " could not be played"); + return; + } + 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; + } +} diff --git a/Assets/Scripts/AudioManager.cs.meta b/Assets/Scripts/AudioManager.cs.meta new file mode 100644 index 0000000..c012381 --- /dev/null +++ b/Assets/Scripts/AudioManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 19069c1158b5efd4492ea38fcb2aa53c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Items/Whip.cs b/Assets/Scripts/Items/Whip.cs index b826794..b482f8d 100644 --- a/Assets/Scripts/Items/Whip.cs +++ b/Assets/Scripts/Items/Whip.cs @@ -42,6 +42,7 @@ namespace MontanaJohns.Items if (LayerMask.LayerToName(collisionGameObject.layer) == "Grapple") { currentHook = Instantiate(hook, collisionGameObject.transform.position, Quaternion.identity); + FindObjectOfType<AudioManager>().Play("WhipSwoosh"); return clickLocation; } else @@ -63,6 +64,7 @@ namespace MontanaJohns.Items { currentHook = Instantiate(hookNoSwing, collisionGameObject.transform.position, Quaternion.identity); collisionGameObject.GetComponent<Actor>().TakeDamage(player.GetComponent<Player>().stats.damage); + FindObjectOfType<AudioManager>().Play("WhipSwoosh"); yield return new WaitForSeconds(0.1f); Destroy(currentHook); ropeExists = false; diff --git a/Assets/Scripts/Projectile.cs b/Assets/Scripts/Projectile.cs index 7692917..1573d2c 100644 --- a/Assets/Scripts/Projectile.cs +++ b/Assets/Scripts/Projectile.cs @@ -1,7 +1,4 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; -using MontanaJohns.Actors; public class Projectile : MonoBehaviour { @@ -9,11 +6,16 @@ public class Projectile : MonoBehaviour public Rigidbody2D rb; // Start is called before the first frame update - void Start() + private void Start() { rb.velocity = transform.right * speed; } + private void Update() + { + Destroy(gameObject, 4f); + } + private void OnCollisionEnter2D(Collision2D collision) { Destroy(gameObject); diff --git a/Assets/Scripts/Sound.cs b/Assets/Scripts/Sound.cs new file mode 100644 index 0000000..cfe26a4 --- /dev/null +++ b/Assets/Scripts/Sound.cs @@ -0,0 +1,20 @@ +using UnityEngine; +using UnityEngine.Audio; + +[System.Serializable] +public class Sound +{ + public string name; + public AudioClip clip; + + [Range(0f, 1f)] + public float volume; + + [Range(.1f, 3f)] + public float pitch; + + public bool loop; + + [HideInInspector] + public AudioSource source; +} diff --git a/Assets/Scripts/Sound.cs.meta b/Assets/Scripts/Sound.cs.meta new file mode 100644 index 0000000..37b81f6 --- /dev/null +++ b/Assets/Scripts/Sound.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d61e3f443c2315b45a4a8326c6491504 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |