zergon321
@zergon321

Почему не работает движение по сценарию?

Написал сценарий для движения персонажа:

using UnityEngine;

public class Moving : MonoBehaviour {

    public float Speed = 0.5f;
    private float Horisontal, Vertical; 
	
	void Update ()
    {
        Horisontal = Input.GetAxis("Horisontal") * Speed;
        Vertical = Input.GetAxis("Vertical") * Speed;
        transform.Translate(Horisontal, 0, Vertical);
    }
}

Перед тестом сцены поставил в Input Manager'e A и D для Horisontal и S и W для Vertical. Объект с компонентом все равно не двигается.
  • Вопрос задан
  • 636 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
А зачем вы свои точно такие же оси создавали, если в юнити из коробки уже есть Horizontal и Vertical? И кстати да, у вас в названии опечатка, правильно будет через букву z. В консоли ошибки есть? На пустой сцене с кубиком пробовали запускать? Скрипт в инспекторе включён? GameObject не помечен как статичный? На худой конец можете попробовать использовать кнопки напрямую:
using UnityEngine;

public class Moving : MonoBehaviour
{
    public float Speed = 0.5f;

    private void Update()
    {
        float horizontal = Input.GetKey(KeyCode.A) ? -Speed : Input.GetKey(KeyCode.D) ? Speed : 0;
        float vertical = Input.GetKey(KeyCode.S) ? -Speed : Input.GetKey(KeyCode.W) ? Speed : 0;
        transform.Translate(horizontal, 0, vertical);
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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