Présentation du nouveau système de saisie de Unity

Le nouveau système de saisie dans Unity offre une approche mise à jour, flexible et plus intuitive de la gestion des entrées dans les jeux. Avec ce système, les développeurs peuvent s'adapter à une variété d'appareils, des contrôleurs de jeu aux combinés VR, rendant le gameplay plus dynamique et immersif.

1. Pourquoi le nouveau système

Le système de saisie traditionnel dans Unity était limité dans ses capacités et pas aussi extensible. Le New Input System offre une API unifiée, répondant aux limitations précédentes et fournissant des fonctionnalités avancées pour le développement de jeux modernes.

2. Configuration

Pour commencer à utiliser le nouveau système d'entrée, il doit d'abord être installé à partir du gestionnaire de packages dans Unity. Une fois ajoutée, la transition depuis l'ancien système nécessite certains ajustements dans les scripts et les paramètres.

3. Principales caractéristiques

  • Actions et liaisons: Au lieu de référencer directement des boutons ou des touches, les développeurs définissent des actions, puis lient ces actions à des touches ou des boutons spécifiques.
  • Variabilité des appareils: Prend facilement en charge plusieurs appareils, des manettes de jeu traditionnelles aux écrans tactiles et aux combinés VR.
  • Contrôles du joueur: Fournit un mécanisme intégré pour relier les contrôles, permettant aux joueurs de configurer les contrôles comme ils le souhaitent.
  • Gestion avancée des événements:Les événements peuvent être traités de différentes manières, qu'elles soient basées sur des interrogations ou sur des rappels, offrant ainsi plus de contrôle.

4. Création d'une action d'entrée

Une action d'entrée est un nouveau type d'actif qui permet de définir des comportements d'entrée sans avoir à écrire de scripts. Une fois créé, il peut être déposé dans un script, connectant le gameplay directement aux entrées du joueur.

5. Implémentation dans les scripts

  • Le nouveau système de saisie s'intègre de manière transparente à l'environnement de script Unity. Au lieu des anciennes méthodes 'Input.GetKey' ou 'Input.GetAxis', ce système utilise des « actions » qui peuvent être appelées dans des scripts. Vérifiez l'exemple ci-dessous:
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);
    }
}

Décomposons l'exemple de code fourni ci-dessus:

  • Espaces de noms: L'espace de noms 'UnityEngine.InputSystem' est indispensable pour utiliser les nouvelles fonctionnalités.
  • 'moveInput': Cette variable stocke les valeurs d'entrée, représentant généralement les entrées horizontales et verticales.
  • 'OnMove()': Défini comme une fonction publique, 'OnMove' peut être lié directement à une action d'entrée dans l'éditeur Unity. La méthode utilise 'InputAction.CallbackContext' pour lire les valeurs d'entrée et les affecter à notre variable 'moveInput'.
  • 'Update()': Dans la méthode 'Update', les valeurs d'entrée stockées déterminent la direction du mouvement. L'entrée est traduite en un vecteur 3D pour le mouvement du personnage, en tenant compte de la vitesse définie et du Unity 'Time.deltaTime' pour le mouvement indépendant de l'image.

Pour que ce script fonctionne, il est important de lier la méthode 'OnMove' à une action d'entrée via l'éditeur Unity. Cette connexion garantit que lorsqu'un joueur fournit une entrée (comme déplacer un joystick ou appuyer sur les touches fléchées), l'action correspondante déclenche le script souhaité function.

Conclusion

Le nouveau système de saisie de Unity est une évolution puissante et nécessaire, conforme aux besoins du développement de jeux modernes. Il offre polyvalence, précision et personnalisation par l'utilisateur, rendant le jeu interactions plus engageant et réactif.

Articles suggérés
Comment créer un jeu de quiz dans Unity
Guide du jeu de pêche pour Unity
Créer un jeu de tir descendant dans Unity
Créer un jeu de plateforme simple dans Unity
Création d'un jeu inspiré de Poppy Playtime dans Unity
Introduction au système de particules dans Unity
Comment créer un jeu mobile dans Unity