Unity, экран выбора персонажа на одном компьютере двумя игроками - PullRequest
0 голосов
/ 20 ноября 2018

Игра, которую я пытаюсь сделать, включает локальный мультиплеер для игры на одном ПК.Я сделал так, что различные контроллеры в менеджере ввода и игре отлично работали.

Но теперь я перешел к той части, где мне нужно создать экран выбора персонажа для нескольких игроков на одном ПК.Я начинающий к единству и учусь прямо сейчас.Поэтому я понятия не имею, как это сделать.Потому что, когда я пытался сделать это единством, пользовательский интерфейс не смог взять два ввода.В то время

Я также наблюдал за некоторыми потоками, в которых люди предлагали создать свою собственную систему событий и кнопки, но я пытался сделать так, чтобы кнопки не получали никакого ответа, они не активны.Если кто-то видел эти темы и этот метод работает для них, поэтому, пожалуйста, дайте мне знать, как это сделать.

Или, если у кого-то есть другие идеи, как это сделать, пожалуйста, дайте мне знать

Заранее спасибо

1 Ответ

0 голосов
/ 20 ноября 2018

Насколько я знаю, вы не можете иметь более одной системы событий в одной сцене.Итак, зная, что я предложу изменить ... взгляд на вашу игру, вот что может сработать:

Вы не можете иметь более одного входа в одном интерфейсе, но вы можете различить "клавиатурные входы.Итак, давайте предположим, что у вас есть экран, разделенный на 2 части, где левая сторона - это символ выбора Игрока 1, и вы можете выбирать между 2 символами, а правая сторона - это персонаж выбора Игрока 2, с тем же номером (или другим,как вы хотите!) возможных символов.

Псевдокод будет выглядеть примерно так:

private Player m_player1;
private Player m_player2;

private CharacterSelection m_CharacterSelection_Player1;
private CharacterSelection m_CharacterSelection_Player2;

If (m_Player1.Input.GetKeyDown(KeyCode.A))
{
  m_CharacterSelection_Player1.Left();
}
else if(m_Player1.Input.GetKeyDown(KeyCode.D)){
  m_CharacterSelection_Player1.Right();
}

If (m_Player2.Input.GetKeyDown(KeyCode.LeftArrow))
{
  m_CharacterSelection_Player2.Left();
}
else if(m_Player1.Input.GetKeyDown(KeyCode.RightArrow)){
  m_CharacterSelection_Player2.Right();
}

Вот визуальное представление о том, что я пытаюсь вам сказать: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...