using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { public float MoveSpd; public float RotSpd; public GameObject Forward; public GameObject Holding; private InvScript Inv; private AudioManager Audio; private bool IsCoRunning; private void Start() { Audio = FindObjectOfType<AudioManager>(); Inv = FindObjectOfType<InvScript>(); Holding.SetActive(false); Cursor.visible = false; } void Update() { // Foward Movement if (Input.GetAxis("Vertical") > 0) { GetComponent<Rigidbody>().velocity += Forward.transform.forward * MoveSpd; } else if (Input.GetAxis("Vertical") < 0) { GetComponent<Rigidbody>().velocity += (-Forward.transform.forward * MoveSpd); } // Sideways Movement if (Input.GetAxis("Horizontal") > 0) { // Right GetComponent<Rigidbody>().velocity += Forward.transform.right * MoveSpd; } else if (Input.GetAxis("Horizontal") < 0) { // Left GetComponent<Rigidbody>().velocity += (-Forward.transform.right * MoveSpd); } if (GetComponent<Rigidbody>().velocity != Vector3.zero) { Debug.Log("Running2222"); if (!IsCoRunning) { Debug.Log("Running"); StartCoroutine(FootSteps()); } } // Sorts out camera rotation - pretty much all it does Camera.main.transform.eulerAngles += new Vector3(-Input.GetAxis("Mouse Y") * RotSpd, Input.GetAxis("Mouse X") * RotSpd, 0); Forward.transform.eulerAngles += new Vector3(0, Input.GetAxis("Mouse X") * RotSpd, 0); RaycastHit Hit; if (Physics.Raycast(transform.position, Camera.main.transform.forward, out Hit, 10f, LayerMask.NameToLayer("IgnoreItems"))) { Debug.Log(Hit.collider.gameObject.name); if (Input.GetButtonDown("Pickup")) { Audio.PlayClip("Pickup", 1, 1); Inv.PickupItem(Hit.collider.gameObject); Holding.GetComponent<Renderer>().material = Hit.collider.gameObject.GetComponent<Renderer>().material; Holding.SetActive(true); //Holding = Hit.collider.gameObject; } } if (Input.GetButtonDown("Drop")) { Audio.PlayClip("Drop", 1, 1); Inv.DropItem(); } } //private bool Vector3GreaterThan(Vector3 Vec1, Vector3 Vec2) //{ // if ((Vec1.x > Vec2.x) && (Vec1.z > Vec2.z)) // { // return true; // } // else // { // return false; // } //} private IEnumerator FootSteps() { IsCoRunning = true; Debug.Log("PlayAudio"); Audio.PlayClip("FootStep", 3, 1); yield return new WaitForSeconds(.55f); IsCoRunning = false; } }