Этот сценарий, который я использую для перемещения моей игры Endless Runner, сделанной в Unity3D 5.1.2f1 Personal. Перемещение вправо работает полностью. Перемещение влево не работает, но debug.log работает. В инспекторе я вижу, что «leftrightSpeed» установлен на 2 при движении вправо, но при перемещении влево ничего не происходит с поплавком. Что я здесь делаю неправильно?Правило ввода ввода ключа Unity неверно
(Поплавковая скорость установлена на 5 в инспекторе).
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
public float leftrightSpeed;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
//LEFT
if (Input.GetKey("left"))
{
leftrightSpeed = -2f;
Debug.Log ("LEFT");
}
else
{
leftrightSpeed = 0f;
}
//RIGHT
if (Input.GetKey("right"))
{
leftrightSpeed = 2f;
Debug.Log ("RIGHT");
}
else
{
leftrightSpeed = 0f;
}
Vector3 movement = new Vector3 (-2f, 0.0f, leftrightSpeed);
rb.AddForce (movement * speed);
}
}
вы не должны использовать FixedUpdate. google миллион страниц на этом. очень жаль, что Единство когда-либо упоминало об этом в руководстве. – Fattie
На этом сайте нет чатовских заголовков вопросов – Fattie