Задать вопрос
Khan_RA
@Khan_RA
Хорош собой, хотя когда-то был лапшой

Как реализовать ограничение движения игрока на Unity3D?

Здравствуйте)
Я начинающий разработчик.
Я пытаюсь реализовать движение игрока 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;
		}
	}
}
  • Вопрос задан
  • 1364 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Neuyazvimy1
Вам надо будет поменять немного свой код. Советую сделать так чтобы ваш персонаж мог идти только вперед или назад. При нажатии кнопок влево, вправо поворачивайте своего персонажа.
https://docs.unity3d.com/ScriptReference/Rigidbody...
https://docs.unity3d.com/ScriptReference/Quaternio...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы