Menu
CoddyTech

Récapitulatif : changement de système d’entrée

Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 48 sur 60.

Ce chapitre a lu le clavier, la souris et les actions du projet avec l’Input System. La baguette à bulles utilise toujours l’ancienne classe Input : portez-la appel par appel.

challenge icon

Défi

Moyen

Adapte la baguette à bulles au Input System ; l’ancienne classe Input provoque une erreur ici.

  1. Ajoute using UnityEngine.InputSystem; et les champs InputAction moveAction et jumpAction, initialisés dans Start() avec InputSystem.actions.FindAction.
  2. Déplace-toi avec moveAction.ReadValue<Vector2>(), dont le y correspond à l’axe z.
  3. Remplace les tests de Jump par WasPressedThisFrame(), IsPressed() et WasReleasedThisFrame(), et le clic par Mouse.current.leftButton.wasPressedThisFrame.

Appuie sur « Jouer », gonfle une bulle et éclate-la. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Wand : MonoBehaviour
{
    public float speed = 4f;
    public float growRate = 1f;
    public float maxSize = 1.5f;
    public GameObject bubblePrefab;

    private Transform bubble;

    void Update()
    {
        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
        transform.position += move.normalized * speed * Time.deltaTime;

        if (Input.GetButtonDown("Jump"))
        {
            bubble = Instantiate(bubblePrefab, transform.position + Vector3.up * 1.5f, Quaternion.identity).transform;
        }
        if (Input.GetButton("Jump") && bubble != null)
        {
            float size = Mathf.Min(bubble.localScale.x + growRate * Time.deltaTime, maxSize);
            bubble.localScale = Vector3.one * size;
        }
        if (Input.GetButtonUp("Jump") && bubble != null)
        {
            Debug.Log("Bubble: " + bubble.localScale.x.ToString("F1"));
            bubble = null;
        }

        if (Input.GetMouseButtonDown(0))
        {
            GameObject[] bubbles = GameObject.FindGameObjectsWithTag("Bubble");
            foreach (GameObject b in bubbles) Destroy(b);
            Debug.Log("Popped " + bubbles.Length);
        }
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Créer de vrais jeux

Entraînez-vous par vous-même : Playground Unity