Расширение этого вопроса. - здесь вы также можете найти мой код перед этим новым небольшим изменением.
В моей игре на платформе У меня есть персонаж-шар, который перемещается нажатием трех кнопок : «MoveRight» , чтобы сделатьон перемещается вправо, «MoveLeft» , чтобы переместить его влево, и кнопку «Jump» , которая выдаствертикальная сила к мячу, поэтому он будет прыгать.
Чтобы переместить персонажа, я добавляю силу при каждом нажатии кнопки .Сделав это, я понял, что игрок может «обманывать» разными способами .
На платформе довольно много препятствий, которые очень трудно пройти, потому что скорость вполне достаточна .Нажав двумя пальцами на одну и ту же кнопку, я бы добавил двойную горизонтальную силу к шару , и он бы увеличился в раза в два раза , и намного легче прошел бы уровень.
Кроме того, в некоторых случаях у игрока есть время дважды прыгнуть и подняться на намного выше, чем обычно.
Чтобы попытаться избежать этой проблемы, я добавил в OnPointerDown () и OnPointerUp () методы переменную, значение которойпредполагается:
0 , когда нет пальцев нажимают левую и правую кнопки.
1 , когда один палец нажимает кнопки.
> 1 , когда больше пальцев нажимают кнопки (хотя я бы не хотел, чтобы это произошло, но должен был справиться с этим, чтобы не было ошибок или изменений в скорости персонажа).
Это яКод, где это обрабатывается :
public void OnPointerDown(PointerEventData eventData)
{
if (fingersOnButton == 0)
{
fingersOnButton++;
if (movesLeft)
{
playerMovement.TriggerMoveLeft();
}
else
{
playerMovement.TriggerMoveRight();
}
}
}
public void OnPointerUp(PointerEventData eventData)
{
fingersOnButton--;
if (movesLeft)
{
playerMovement.StopMoveLeft();
} else
{
playerMovement.StopMoveRight();
}
}
Примечание: Переменная fingerOnButton установлено на 0 при запуске.
Теперь, когда я нажимаю кнопку двумя пальцами одновременно , она не удваивает скорость (как я хотел), но когда я ее выпускаюс обоими пальцами какая-то сила застревает, как будто я нажимаю другую кнопку (одним пальцем).
Я пытался изменить некоторые вещи в этих двух методах, но ничего не помогло.
Любая информация или помощь о том, как это исправить, очень ценится!