public Player_state MoveTowards(Vector3 moveTowardsTarget) { Vector3 lookAt = moveTowardsTarget; lookAt.y = transform.position.y; transform.LookAt(lookAt); if (Physics.Raycast(transform.position, (target.transform.position - transform.position).normalized, 1f * transform.localScale.x)) { return(Player_state.ok); } else if (Mathf.Abs(moveTowardsTarget.x - transform.position.x) < ARRIVED_MOVE_TOW * transform.localScale.x && Mathf.Abs(moveTowardsTarget.z - transform.position.z) < ARRIVED_MOVE_TOW * transform.localScale.z) { return(Player_state.ok); } float staminaToBeUsed = state.getPace() * Time.deltaTime; if (state.IsMovingFast() && state.stamina < staminaToBeUsed) { state.currentPace = Pace.jogging; } rb.velocity = state.maxMoveSpeed * state.getPace() * transform.forward; if (state.IsMovingFast()) { state.stamina -= staminaToBeUsed; } return(Player_state.notFound); }