void FixedUpdate() { //Escape if (Input.GetKey(KeyCode.Escape)) { quitPanel.SetActive(true); } //Inventory Menu(); //Stamina update stamina = Mathf.Clamp01(stamina + staminaRecovery * Time.deltaTime); //Access and change position of boxes (The stones). stone = FindClosestStone(); gravityBoxController = stone.gravityBoxcontroller; gravityTest = stone.triggered; collisiontest = stone.collisionTest; boxPosition = new Vector2(gravityBoxController.position.x, gravityBoxController.position.y); //To check if we are moving. if (moveDirection.x != 0.00000f) { lookRotation = new Vector3(moveDirection.x, 0.0f, 0.0f); transform.rotation = Quaternion.LookRotation(lookRotation); } //Use gravity controller if (Input.GetKey(KeyCode.Space)) { GravityControll(); } //If not using gravity controller else { GroundMovement(); } if (!moveBox) { //Apply Smooth movement then move. PID(ref currentMovement, ref moveDirection); controller.Move(currentMovement * currSpeed * Time.deltaTime); } //Animate when moving. anim.SetFloat("Speed", Mathf.Abs(moveDirection.x)); }
// Update is called once per frame void Update() { stone = getstone.FindClosestStone(); sparkObject = stone.transform.GetChild(1).gameObject; gravityTest = stone.triggered; if (gravityTest) { sparkObject.SetActive(true); sparkPlayer.SetActive(false); } else if (!gravityTest) { sparkObject.SetActive(false); sparkPlayer.SetActive(true); } }
public ObjectGravityController FindClosestStone() { ObjectGravityController[] gos; gos = FindObjectsOfType <ObjectGravityController>(); ObjectGravityController closest = null; float distance = Mathf.Infinity; Vector3 position = transform.position; foreach (ObjectGravityController go in gos) { Vector3 diff = go.transform.position - position; float curDistance = diff.sqrMagnitude; if (curDistance < distance) { closest = go; distance = curDistance; } } return(closest); }