using System.Collections; using System.Collections.Generic; using Unity.Burst.Intrinsics; using UnityEditor.Experimental.GraphView; using UnityEngine; using UnityEngine.Analytics; using UnityEngine.Animations; using UnityEngine.InputSystem; public class Controls : MonoBehaviour { public float MOVEMENTSPEED = 10f; public float SENSITIVITY = 10f; public Vector2 movement; public Vector2 rotation; public bool isAirborne; // Start is called before the first frame update void Start() { movement = new Vector2(); rotation = new Vector2(); isAirborne = true; } // Update is called once per frame void Update() { } void FixedUpdate(){ applyInput(); if(Cursor.lockState == CursorLockMode.Locked){ GameObject.Find("Crosshair").transform.localScale = new Vector3(1,1,1); } else{ GameObject.Find("Crosshair").transform.localScale = new Vector3(0,0,0); } } private void applyInput(){ //Do Cam manipulation according to input even if in air Vector3 camManipulation = new Vector3(-rotation.y,0,0); GameObject.Find("MainCamera").transform.Rotate(camManipulation * Time.deltaTime * SENSITIVITY); //Directly rotate Player object so that movement works Vector3 lookDirection = new Vector3(0, rotation.x, 0) * Time.deltaTime * SENSITIVITY; gameObject.transform.Rotate(lookDirection); if(isAirborne) return; //Move Player object according to input and after rotation Vector3 direction = new Vector3(movement.x, 0, movement.y) * Time.deltaTime * MOVEMENTSPEED; gameObject.transform.Translate(direction); } void OnMove(InputValue direction){ movement = direction.Get(); } void OnLook(InputValue direction){ rotation = direction.Get(); } void OnFire(){ Debug.Log("Fired"); if(Cursor.lockState == CursorLockMode.Locked){ Cursor.lockState = CursorLockMode.None; } else{ Cursor.lockState = CursorLockMode.Locked; } } void OnCollisionEnter(Collision col){ if(!isAirborne) return; if(col.gameObject.name.ToLower().Contains("plattform")){ isAirborne = false; } } void OnCollisionExit(Collision col){ if(isAirborne) return; if(col.gameObject.name.ToLower().Contains("plattform")){ isAirborne = true; } } }