Я следовал этой серии уроков , чтобы создать 2D-игру с боковой прокруткой.В PlayerController я поменял Input для CrossPlatformController, чтобы использовать экранные кнопки для перемещения, но теперь нажатие любой из кнопок перемещения ничего не дает.
Оба являются UIButtons на Canvas с именем «Horizontal»;тот, который движется вправо, имеет значение оси 1, а левый - -1.Я настроил Debug.Log для чтения GetAxis при нажатии кнопки, и это результаты.
Я думаю, единственные числа, которые должны отображаться, это 1 и 0, но этодело не в этом.
Игнорирование прыжков и аниматоров, это то, что у меня есть для функции ComputeVelocity.«motion» - это то же самое, что и «move» в учебном коде.
protected override void ComputeVelocity()
{
Vector2 motion = Vector2.zero;
motion.x = CrossPlatformInputManager.GetAxis("Horiztonal");
if (motion.x != 0) { Debug.Log("Should be moving."); }
Debug.Log(CrossPlatformInputManager.GetAxis("Horizontal"));
targetVelocity = motion * maxSpeed;
}
Я предполагаю, что когда я устанавливаю motion.x в значение GetAxis, оно округляется до 0, так как число очень мало,Я попытался обойти это, проверив, больше ли GetAxis или меньше нуля, и затем установив targetVelocity на maxSpeed (или -maxSpeed), если это так, но в этом случае игрок не всегда прекращает движение после того, как я отпущу кнопку.
Я поставлен в тупик относительно того, является ли это проблемой с моей настройкой или мне нужно кодировать в обход.