Omówienie nowego systemu wprowadzania danych w Unity

Nowy system wprowadzania w Unity zapewnia zaktualizowane, elastyczne i bardziej intuicyjne podejście do obsługi danych wejściowych w grach. Dzięki temu systemowi programiści mogą obsługiwać różnorodne urządzenia, od kontrolerów gier po telefony VR, dzięki czemu rozgrywka jest bardziej dynamiczna i wciągająca.

1. Dlaczego nowy system

tradycyjny system wejściowy w Unity miał ograniczone możliwości i nie był tak rozszerzalny. Nowy system wprowadzania oferuje ujednolicony interfejs API, rozwiązujący poprzednie ograniczenia i zapewniający zaawansowane funkcje do tworzenia nowoczesnych gier.

2. Konfiguracja

Aby rozpocząć korzystanie z nowego systemu wejściowego, należy go najpierw zainstalować z Menedżera pakietów w Unity. Po dodaniu przejście ze starego systemu wymaga pewnych dostosowań w skryptach i ustawieniach.

3. Kluczowe cechy

  • Akcje i powiązania: Zamiast bezpośrednio odwoływać się do przycisków lub klawiszy, programiści definiują akcje, a następnie wiążą je z określonymi klawiszami lub przyciskami.
  • Różnorodność urządzeń: Z łatwością obsługuje wiele urządzeń, od tradycyjnych gamepadów po ekrany dotykowe i telefony VR.
  • Sterowanie graczem: Zapewnia wbudowany mechanizm ponownego łączenia elementów sterujących, umożliwiając graczom konfigurowanie sterowania według własnych preferencji.
  • Zaawansowana obsługa zdarzeń:Zdarzenia można przetwarzać na różne sposoby, w oparciu o odpytywanie lub wywołanie zwrotne, zapewniając większą kontrolę.

4. Tworzenie akcji wejściowej

Akcja wejściowa to nowy typ zasobu, który umożliwia definiowanie zachowań wejściowych bez konieczności pisania skryptów. Po utworzeniu można go umieścić w skrypcie, łącząc rozgrywkę bezpośrednio z danymi wejściowymi gracza.

5. Implementacja w skryptach

  • Nowy system wejściowy płynnie integruje się ze środowiskiem skryptowym Unity. Zamiast starszych metod 'Input.GetKey' lub 'Input.GetAxis', ten system używa „akcji”, które można wywołać w skryptach. Sprawdź poniższy przykład:
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);
    }
}

Rozłóżmy podany przykład kodu powyżej:

  • Przestrzenie nazw: Przestrzeń nazw 'UnityEngine.InputSystem' jest niezbędna do korzystania z nowych funkcjonalności.
  • 'moveInput': Ta zmienna przechowuje wartości wejściowe, zwykle reprezentujące dane wejściowe poziome i pionowe.
  • 'OnMove()': Zdefiniowana jako funkcja publiczna, 'OnMove' może być połączona bezpośrednio z akcją wejściową w edytorze Unity. Metoda wykorzystuje 'InputAction.CallbackContext' do odczytania wartości wejściowych i przypisania ich do naszej zmiennej 'moveInput'.
  • 'Update()': W metodzie 'Update' zapisane wartości wejściowe określają kierunek ruchu. Dane wejściowe są tłumaczone na wektor 3D dla ruchu postaci, biorąc pod uwagę zdefiniowaną prędkość i Unity 'Time.deltaTime' dla ruchu niezależnego od klatki.

Aby ten skrypt działał, ważne jest, aby połączyć metodę 'OnMove' z akcją wejściową za pośrednictwem edytora Unity. To połączenie gwarantuje, że gdy gracz wprowadzi dane wejściowe (takie jak poruszenie joystickiem lub naciśnięcie klawiszy strzałek), odpowiednia akcja uruchomi żądany skrypt funkcja.

Wniosek

Nowy system wprowadzania w Unity to potężna i konieczna ewolucja, dostosowana do potrzeb współczesnego tworzenia gier. Oferuje wszechstronność, precyzję i możliwość dostosowania przez użytkownika, dzięki czemu gra interakcje jest bardziej wciągająca i responsywna.

Sugerowane artykuły
Jak stworzyć grę quizową w Unity
Przewodnik po grze wędkarskiej dla Unity
Tworzenie izometrycznej gry RPG w Unity
Tworzenie strzelanki z widokiem z góry w Unity
Wprowadzenie do systemu animacji Unity
Tworzenie prostej gry platformowej w Unity
Tworzenie gry inspirowanej zabawą Poppy w Unity