Я пытаюсь создать платформерную игру, в которой есть два играбельных персонажа. Когда пользователь нажимает на правую сторону экрана, первый символ прыгает, а когда нажимается на левой стороне экрана, другой символ прыгает.
Я смог заставить первого игрока прыгнуть, но не смог заставить второго прыгнуть.
if (Input.GetMouseButtonDown(0) && !IsDead)
{
jump = true;
}
Этот код работает для одного символа, но я не могу заставить второй символ прыгать.
EDIT
@ derHugo, спасибо за ответ. Я пытался реализовать код, который вы предоставили. Это работает для игрока 2, но игрок 1 не работает, как ожидалось. Вот что у меня есть:
public enum WhichPlayer
{
Player1,
Player2
};
public WhichPlayer whichPlayer;
void Update () {
if (Input.GetMouseButtonDown(0) && !IsDead){
Vector2 position = Input.mousePosition;
bool leftHalf = position.x <= Screen.width / 2;
if (whichPlayer == WhichPlayer.Player1 && !leftHalf || whichPlayer == WhichPlayer.Player2 && leftHalf)
{
jump = true;
animator.SetBool("Jump", true);
} else {
jump = false;
animator.SetBool("Jump", false);
}
Игрок 2: при нажатии левой стороны экрана игрок 2 прыгает и воспроизводится анимация. При щелчке правой стороны экрана игрок 2 остается на земле, а анимация не воспроизводится.
Игрок 1: при нажатии правой стороны экрана игрок 1 прыгает и воспроизводится анимация. При щелчке левой стороны экрана игрок 1 все еще прыгает, но анимация не воспроизводится. Я не могу понять, почему игрок 1 все еще прыгает, потому что анимация останавливается, и это из-за кода в блоке "else".