Prezentare generală a noului sistem de intrare al Unity

Noul sistem de introducere în Unity oferă o abordare actualizată, flexibilă și mai intuitivă pentru gestionarea intrărilor în jocuri. Cu acest sistem, dezvoltatorii pot satisface o varietate de dispozitive, de la controlere de joc la telefoane VR, făcând jocul mai dinamic și mai captivant.

1. De ce noul sistem

sistemul tradițional de introducere în Unity a fost limitat în capacități și nu la fel de extensibil. New Input System oferă un API unificat, abordând limitările anterioare și oferind funcții avansate pentru dezvoltarea jocurilor moderne.

2. Configurare

Pentru a începe să utilizați noul sistem de intrare, acesta trebuie mai întâi instalat din Managerul de pachete în Unity. Odată adăugată, trecerea de la vechiul sistem necesită anumite ajustări în scripturi și setări.

3. Caracteristici cheie

  • Acțiuni și legături: În loc să facă referire directă la butoane sau chei, dezvoltatorii definesc acțiuni, apoi leagă acele acțiuni la anumite taste sau butoane.
  • Variabilitatea dispozitivului: Suportă cu ușurință mai multe dispozitive, de la gamepad-uri tradiționale la ecrane tactile și telefoane VR.
  • Comenzi jucător: Oferă un mecanism încorporat pentru relegarea comenzilor, permițând jucătorilor să configureze comenzile după cum preferă.
  • Gestionare avansată a evenimentelor:Evenimentele pot fi procesate în diferite moduri, fie pe bază de sondaj, fie pe bază de apel invers, oferind mai mult control.

4. Crearea unei acțiuni de intrare

O acțiune de intrare este un nou tip de material care permite definirea comportamentelor de intrare fără a fi nevoie să scrieți scripturi. Odată creat, acesta poate fi introdus într-un script, conectând jocul direct la intrările jucătorului.

5. Implementare în Scripting

  • Noul sistem de intrare se integrează perfect cu mediul de scripting Unity. În locul metodelor mai vechi 'Input.GetKey' sau 'Input.GetAxis', acest sistem folosește „acțiuni” care pot fi apelate în cadrul scripturilor. Verificați exemplul de mai jos:
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);
    }
}

Să descompunem exemplul de cod furnizat mai sus:

  • Spații de nume: Spațiul de nume 'UnityEngine.InputSystem' este esențial pentru a utiliza noile funcționalități.
  • 'moveInput': Această variabilă stochează valorile de intrare, reprezentând de obicei intrări orizontale și verticale.
  • 'OnMove()': Definit ca o funcție publică, „OnMove” poate fi legat direct la o acțiune de intrare în editorul Unity. Metoda utilizează 'InputAction.CallbackContext' pentru a citi valorile de intrare și a le atribui variabilei noastre 'moveInput'.
  • 'Update()': În metoda 'Update', valorile de intrare stocate determină direcția de mișcare. Intrarea este tradusă într-un vector 3D pentru mișcarea caracterului, luând în considerare viteza definită și Unity 'Time.deltaTime' pentru mișcarea independentă de cadru.

Pentru ca acest script să funcționeze, este important să legați metoda 'OnMove' la o acțiune de intrare prin editorul Unity. Această conexiune asigură că atunci când un jucător oferă intrare (cum ar fi mutarea unui joystick sau apăsarea tastelor săgeți), acțiunea corespunzătoare declanșează scriptul dorit funcție.

Concluzie

Noul sistem de intrare din Unity este o evoluție puternică și necesară, aliniată cu nevoile dezvoltării jocurilor moderne. Oferă versatilitate, precizie și personalizare utilizator, făcând jocul interactions mai captivant și mai receptiv.