Огляд нової системи введення Unity

Нова система введення в Unity забезпечує оновлений, гнучкий і більш інтуїтивно зрозумілий підхід до обробки введення в іграх. За допомогою цієї системи розробники можуть обслуговувати різноманітні пристрої, від ігрових контролерів до телефонів VR, роблячи ігровий процес більш динамічним і захоплюючим.

1. Чому Нова система

традиційна система введення в Unity була обмежена у своїх можливостях і не настільки розширювана. Нова система введення пропонує уніфікований API, усуваючи попередні обмеження та надаючи розширені функції для розробки сучасних ігор.

2. Налаштовуючи

Щоб почати використовувати нову систему введення, її потрібно спочатку встановити з менеджера пакетів у Unity. Після додавання перехід від старої системи вимагає певних коригувань сценаріїв і налаштувань.

3. Ключові особливості

  • Дії та прив’язки: Замість прямого посилання на кнопки чи клавіші розробники визначають дії, а потім прив’язують ці дії до певних клавіш чи кнопок.
  • Варіативність пристрою: Легко підтримує кілька пристроїв, від традиційних геймпадів до сенсорних екранів і телефонів VR.
  • Елементи керування гравцем: Надає вбудований механізм для повторного прив’язування елементів керування, що дозволяє гравцям налаштовувати елементи керування за бажанням.
  • Розширена обробка подій:Події можна обробляти різними способами, на основі опитування чи зворотного виклику, надаючи більше контролю.

4. Створення вхідної дії

Вхідна дія — це новий тип ресурсу, який дозволяє визначати поведінку введення без необхідності писати сценарії. Після створення його можна вставити в сценарій, пов’язуючи процес гри безпосередньо з введеннями гравця.

5. Реалізація в сценаріях

  • Нова система введення бездоганно інтегрується в середовище сценаріїв Unity. Замість старіших методів 'Input.GetKey' або 'Input.GetAxis' ця система використовує «дії», які можна викликати в сценаріях. Перевірте приклад нижче:
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerMovement : MonoBehaviour
{
    public float speed = 5.0f;
    private Vector2 moveInput;

    public void OnMove(InputAction.CallbackContext context)
    {
        moveInput = context.ReadValue<Vector2>();
    }

    void Update()
    {
        Vector3 move = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
        transform.Translate(move);
    }
}

Давайте розберемо наведений вище приклад коду:

  • Простори імен: простір імен 'UnityEngine.InputSystem' необхідний для використання нових функцій.
  • 'moveInput': Ця змінна зберігає вхідні значення, які зазвичай представляють горизонтальні та вертикальні вхідні дані.
  • 'OnMove()': Визначена як загальнодоступна функція, 'OnMove' може бути пов'язана безпосередньо з дією введення в редакторі Unity. Метод використовує 'InputAction.CallbackContext' для читання вхідних значень і призначення їх нашій змінній 'moveInput'.
  • 'Update()': у методі 'Update' збережені вхідні значення визначають напрямок руху. Вхідні дані перетворюються на 3D-вектор для руху персонажа, враховуючи визначену швидкість і Unity 'Time.deltaTime' для кадрово-незалежного руху.

Щоб цей сценарій працював, важливо пов’язати метод 'OnMove' із дією введення за допомогою редактора Unity. Це підключення гарантує, що коли гравець вводить дані (наприклад, переміщення джойстика або натискання клавіш зі стрілками), відповідна дія запускає потрібний скрипт функцію.

Висновок

Нова система введення в Unity є потужною та необхідною еволюцією, яка відповідає потребам сучасної розробки ігор. Він пропонує універсальність, точність і налаштування користувача, роблячи гру взаємодії більш привабливою та чуйною.

Рекомендовані статті
Створення простої платформерної гри в Unity
Вступ до системи частинок в Єдності
Посібник з риболовлі для Unity
Створення шутера зверху вниз в Unity
Знайомство з системою анімації Unity
5 важливих порад для початківців розробників ігор
Створення гри на тему Poppy Playtime в Unity