You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.2 KiB

using System;
using System.Collections;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
[SerializeField] private float basespeed;
[SerializeField] private float speed;
[SerializeField] private float speedincrease;
private Rigidbody rb;
[SerializeField] private float slide;
Vector3 moveDirection;
bool vertical;
bool horizontal;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
horizontalInput = Mathf.Round(horizontalInput);
verticalInput = Mathf.Round(verticalInput);
if (horizontalInput != 0 && horizontal == true)
{
transform.rotation = Quaternion.Euler(0f, 0f, 90f);
vertical = false;
moveDirection = new Vector3(horizontalInput,0, 0);
moveDirection.Normalize();
if (!vertical)
{
speed += speedincrease;
}
}
else if (verticalInput != 0 && vertical == true)
{
transform.rotation = Quaternion.Euler(90f, 0f, 0f);
horizontal = false;
moveDirection = new Vector3(0, 0, verticalInput);
moveDirection.Normalize();
if (!horizontal)
{
speed += speedincrease;
}
}
else
{
StartCoroutine(Slide(slide));
transform.rotation = Quaternion.Euler(0f, 0f, 0f);
}
transform.Translate(moveDirection * speed * Time.deltaTime, Space.World);
}
IEnumerator Slide(float delay)
{
yield return new WaitForSeconds(delay);
moveDirection = new Vector3(0, 0, 0);
horizontal = true;
vertical = true;
speed = basespeed;
}
}