Здравствуйте)
Я начинающий разработчик.
Я пытаюсь реализовать движение игрока TopDown. Игрок двигается параллельно координатным осям. Пожалуйста помогите сделать так, чтобы он мог менять направление движения только на 90 градусов. Из движения вниз направо или налево. Из движения вправо вниз или вверх.
Вот мои наработки(если дадите совет по ним будет круто))):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
private float horizontal;
private float vertical;
public float speed = 1f;
public float time = 0.1f;
public bool right = true;
public bool left = true;
public bool up = true;
public bool down = true;
private Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D> ();
}
// Update is called once per frame
void Update () {
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
if (horizontal > time && (up || down)) {
rb.velocity = (new Vector2 (1, 0)) * speed;
right = true;
left = false;
up = false;
down = false;
}
if (horizontal < time & (up || down)) {
rb.velocity = (new Vector2 (-1, 0)) * speed;
right = false;
left = true;
up = false;
down = false;
}
if (vertical > time & (right || left)) {
rb.velocity = (new Vector2 (0, 1)) * speed;
right = false;
left = false;
up = true;
down = false;
}
if (vertical < time & (right || left)) {
rb.velocity = (new Vector2 (0, -1)) * speed;
right = false;
left = false;
up = false;
down = true;
}
}
}