Напишите имя строки входного ключа - PullRequest
0 голосов
/ 18 января 2019

В моей игре пользователь может установить ключ для открытия игровой приставки.

Я хочу показать пользователю во время игры информацию о том, что он может открыть консоль, нажав клавишу, которую он установил ранее.

Например:

Ключ по умолчанию для консоли - f1. Тогда это должно показать:

Нажмите F1, чтобы открыть Консоль

Если пользователь устанавливает ключ C, он должен написать:

Нажмите C, чтобы открыть Консоль

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

Edit:

Извините, что не было ясно, что я имею в виду.

Я добавил снимок экрана с конфигурацией ввода (которая является стандартной конфигурацией ввода Unity).

В этой конфигурации пользователь может установить ключ для OpenConsole, дважды щелкнув по f1 (в строке Primary).

В Unity я могу проверить, нажата ли конкретная кнопка следующим образом:

if (Input.GetButtonDown("OpenConsole"))
{
...
}

Но я хочу показать пользователю, какой ключ он выбрал для OpenConsole. Примерно так:

text.text = "Press the " + WhateverTheUserSet + " Key to open the Console!";

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 января 2019

К сожалению, в Unity нет способа проверить, какие клавиши назначены из диспетчера ввода. Если вам нужно больше контроля, вам нужно реализовать собственное решение для сопоставления клавиш.

0 голосов
/ 19 января 2019

Хорошо, ваш вопрос не ясен относительно того, как пользователь задает / изменяет ключ по умолчанию / переопределен, но я дам два решения на основе двух сценариев:

Сценарий 1. Предполагается, что вы спрашиваете пользователя, какой ключ использовать на экранной странице «Переопределить ключ». В этой ситуации вы, вероятно, будете использовать что-то вроде Console.ReadKey(), где вы снимаете нажатие клавиатуры пользователя. В итоге вы получите код клавиши, который может быть одним из примерно 100 клавиш на клавиатуре. Вам нужно будет внутренне сохранить отображение между кодом ключа и «текстом». Если пользователь нажал клавишу F1, а это код клавиши (скажем, 232), то вы будете использовать сопоставление, чтобы получить строку «F1», которая отображается на экране. Вы должны сохранить код ключа в конфигурации для использования в игре и для разрешения между запусками игры.

Сценарий 2: Предполагается, что пользователь редактирует файл конфигурации и устанавливает значение в нем. В этой ситуации вам нужно, чтобы картография шла другим путем. Если файл конфигурации содержит (по умолчанию):

ConsoleKey=F1

Тогда вам нужно подобное внутренне сохраненное отображение, но в другом направлении. Если пользователь изменяет значение на «A», то это должно быть сопоставлено с кодом клавиши (например, 65). Пользователь может изменить файл конфигурации, и отображение сообщит пользователю, какой ключ нужно обнаружить в игре. Вы можете отобразить тот же текст, что и в файле конфигурации для вашей "информации" на экране.

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

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