Оглавление:

Простой контроллер Unity: 5 шагов
Простой контроллер Unity: 5 шагов

Видео: Простой контроллер Unity: 5 шагов

Видео: Простой контроллер Unity: 5 шагов
Видео: Unity CHARACTER CONTROLLER и RIGIDBODY простым языком за 7 минут! 2024, Декабрь
Anonim
Простой контроллер Unity
Простой контроллер Unity

Описание

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

Шаг 1: материалы

Необходимые компоненты

  • -Arduino 2x резистор
  • - [~ 220 Ом
  • -Провода
  • -2x кнопки
  • - макетная плата

Шаг 2: макетирование

Макетирование
Макетирование

Я начал с подключения порта GND Arduino к отрицательному (-) контакту на левой стороне макета, а 5 В - к положительному (+) на правой стороне макета.

После этого я поставил кнопки на то место, где хотел, чтобы они были. И подключил их с помощью проводов и резисторов.

Шаг 3: кодирование Arduino

Прежде всего, вам нужно будет написать код для запуска Arduino. Я добавляю в код комментарии, объясняющие, что он делает.

// Объявляем контакты, к которым подключены кнопки.

const int buttonPin1 = 3; const int buttonPin2 = 4;

установка void ()

{// Запускаем серийник Serial.begin (9600); // Настраиваем выводы как выходные. pinMode (buttonPin1, ВХОД); pinMode (buttonPin2, ВХОД); }

пустой цикл ()

{// Считываем состояние кнопки if (digitalRead (buttonPin1) == HIGH) {// выводим эту строку, если состояние HIGH. Serial.println («Левый»); задержка (20); } if (digitalRead (buttonPin2) == HIGH) {// выводим эту строку, если состояние HIGH. Serial.println («Право»); задержка (20); }}

Шаг 4: единство

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

в этом случае вам понадобится игровой объект для перемещения.

Для простоты создадим куб, перейдя в GameObject-> 3D Object-> Cube.

как только куб окажется в вашей сцене, выберите его, нажмите кнопку «Добавить компонент» и создайте новый скрипт.

Также вам нужно будет изменить уровень совместимости Api, чтобы библиотека System. IO. Ports работала.

Для этого перейдите в Edit-> Project Settings-> Player.

прокрутите вниз в этом меню, пока не найдете уровень совместимости Api, и выберите. NET 2.0 вместо подмножества. Net 2.0.

Теперь вы готовы начать кодирование.

используя System. Collections; используя System. Collections. Generic; using UnityEngine; используя System. IO. Ports;

открытый класс PlayerMovement: MonoBehaviour

{скорость публичного плавания; поплавковое движение;

SerialPort sp = новый SerialPort ("COM3", 9600);

void Start ()

{// Запускаем код, чтобы открыть последовательный порт OpenSerialPort (); }

void OpenSerialPort ()

{// Открываем последовательный порт sp. Open (); sp. ReadTimeout = 1; }

void Movement (направление строки)

{// Проверяем, в каком направлении прошел Arduino if (Direction == "Left") {motion = -1; } если (Направление == "Вправо") {движение = 1; } // вычисляем величину, на которую будет перемещен игровой объект float translation = движение * скорость; // Применим движение к игровому объекту transform. Translate (translation, 0, 0); }

void Update ()

{if (sp. IsOpen) {try {// пока последовательный порт открыт move выполнить функцию перемещения и передать строку, которую Arduino печатает Movement (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Шаг 5: Заключительные примечания

Проверьте, работают ли ваши компоненты

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

Рекомендуемые: