diff --git a/Assets/Scripts/Robot Arm/Grapparoni.cs b/Assets/Scripts/Robot Arm/Grapparoni.cs index 667036a..13be723 100644 --- a/Assets/Scripts/Robot Arm/Grapparoni.cs +++ b/Assets/Scripts/Robot Arm/Grapparoni.cs @@ -8,6 +8,9 @@ public class Grapparoni : MonoBehaviour public float radius; public GameObject grabSpot; public GameObject grabbedObject; + + [Header("DEBUG")] + public GameObject debugClosest; private LineRenderer lineRenderer; // Start is called before the first frame update @@ -21,7 +24,7 @@ public class Grapparoni : MonoBehaviour { Collider[] items = Physics.OverlapSphere(grabSpot.transform.position, radius); if (items.Length < 1) { lineRenderer.enabled = false; return; } - GameObject closest = items[0].gameObject; + GameObject closest = null; foreach (Collider item in items) { Rigidbody rb = item.gameObject.GetComponent(); @@ -29,21 +32,20 @@ public class Grapparoni : MonoBehaviour if (rb) { float dist = Vector3.Distance(item.transform.position, transform.position); - if (dist < Vector3.Distance(closest.transform.position, transform.position)) + if (closest == null || dist < Vector3.Distance(closest.transform.position, transform.position)) { closest = item.gameObject; } } } + + if (!closest) { lineRenderer.enabled = false; return; } Rigidbody closestRb = closest.transform.GetComponent(); if (closestRb) { lineRenderer.enabled = true; lineRenderer.SetPosition(0, grabSpot.transform.position); lineRenderer.SetPosition(1, closest.transform.position); - } else - { - lineRenderer.enabled = false; } } @@ -72,7 +74,7 @@ public class Grapparoni : MonoBehaviour Collider[] items = Physics.OverlapSphere(grabSpot.transform.position, radius); if (items.Length < 1) { return; } - GameObject closest = items[0].gameObject; + GameObject closest = null; foreach (Collider item in items) { Rigidbody rb = item.gameObject.GetComponent(); @@ -80,12 +82,14 @@ public class Grapparoni : MonoBehaviour if(rb) { float dist = Vector3.Distance(item.transform.position, transform.position); - if (dist < Vector3.Distance(closest.transform.position, transform.position)) { + if (closest == null || dist < Vector3.Distance(closest.transform.position, transform.position)) { closest = item.gameObject; + debugClosest = closest; } } } + if(!closest) { return; } Rigidbody closestRb = closest.transform.GetComponent(); if (closestRb) { diff --git a/Assets/Scripts/Robot Arm/RobotArmController.cs b/Assets/Scripts/Robot Arm/RobotArmController.cs index f72d6bf..9be019e 100644 --- a/Assets/Scripts/Robot Arm/RobotArmController.cs +++ b/Assets/Scripts/Robot Arm/RobotArmController.cs @@ -19,6 +19,15 @@ public class RobotArmController : MonoBehaviour public GameObject targetMarker; + //Audio + public AudioSource backgroundSource; + public AudioSource sfxSource; + public AudioSource interactSource; + + public AudioClip idleSound; + public AudioClip interactSound; + public AudioClip moveClip; + // Start is called before the first frame update void Start() { @@ -28,7 +37,10 @@ public class RobotArmController : MonoBehaviour private void Update() { - targetMarker.transform.position = new Vector3(target.transform.position.x, transform.position.y + .5f, target.transform.position.z); + RaycastHit hit; + Physics.Raycast(grabber.grabSpot.transform.position, Vector3.down, out hit, 10); + + targetMarker.transform.position = new Vector3(grabber.grabSpot.transform.position.x, hit.point.y + 0.05f, grabber.grabSpot.transform.position.z); } public void InteractNode(Node pre) @@ -43,6 +55,8 @@ public class RobotArmController : MonoBehaviour { if (!isInUse) { return; } + bool isMoving = false; + //return to network view with x if (Keyboard.current.xKey.wasPressedThisFrame) { @@ -53,20 +67,29 @@ public class RobotArmController : MonoBehaviour } //return to network view with x - if (Keyboard.current.spaceKey.wasPressedThisFrame) + if (Keyboard.current.spaceKey.wasPressedThisFrame && !sfxSource.isPlaying) { grabber.GrabClosest(); + interactSource.clip = interactSound; + interactSource.Play(); + } //Hoch/Runter if (Keyboard.current.ctrlKey.isPressed && target.transform.position.y > transform.position.y) { + if(Physics.Raycast(grabber.transform.position, Vector3.down, .9f)) + { + target.transform.localPosition -= Vector3.down * Time.deltaTime * armSpeed; + } target.transform.localPosition += Vector3.down * Time.deltaTime * armSpeed; + isMoving = true; } if (Keyboard.current.shiftKey.isPressed && target.transform.localPosition.y < targetConstraints.y) { target.transform.localPosition += Vector3.up * Time.deltaTime * armSpeed; + isMoving = true; } //Debug.Log(-targetConstraints.z); @@ -74,33 +97,50 @@ public class RobotArmController : MonoBehaviour if (Keyboard.current.aKey.isPressed && target.transform.localPosition.z > -targetConstraints.z) { target.transform.localPosition += Vector3.back * Time.deltaTime * armSpeed; + isMoving = true; } if (Keyboard.current.dKey.isPressed && target.transform.localPosition.z < targetConstraints.z) { target.transform.localPosition += Vector3.forward * Time.deltaTime * armSpeed; + isMoving = true; } //Left/Right if (Keyboard.current.qKey.isPressed) { transform.Rotate(0.0f, armRotationSpeed * Time.deltaTime, 0.0f, Space.Self); + isMoving = true; } if (Keyboard.current.eKey.isPressed) { transform.Rotate(0.0f, -armRotationSpeed * Time.deltaTime, 0.0f, Space.Self); + isMoving = true; } //Forwards/Backwards if (Keyboard.current.wKey.isPressed && target.transform.localPosition.x > -targetConstraints.x) { target.transform.localPosition += Vector3.left * Time.deltaTime * armSpeed; + isMoving = true; } if (Keyboard.current.sKey.isPressed && target.transform.localPosition.x < -3.5f) { target.transform.localPosition += Vector3.right * Time.deltaTime * armSpeed; + isMoving = true; + } + + if (!sfxSource.isPlaying && isMoving) + { + sfxSource.clip = moveClip; + sfxSource.Play(); + } + + if(!isMoving) + { + sfxSource.Stop(); } } } diff --git a/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav b/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav new file mode 100644 index 0000000..cd76be4 --- /dev/null +++ b/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c063ff1239e0ac360ad252d84753caa64d558fa4dd818a531d327e505766e2b7 +size 170900 diff --git a/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav.meta b/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav.meta new file mode 100644 index 0000000..e33b6bf --- /dev/null +++ b/Assets/Sounds/387239__deleted-user-228014__beerhiss1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 66f5a01951ce1964993ffc0dda57c1df +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: