GotNoPockets / MayhemJamGameThingy / Assets / Scripts / PlayerController.cs
PlayerController.cs
Raw
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;
	}
}