Menu
CoddyTech

Dirigez avec les touches

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 12 sur 85.

Input.GetKey(KeyCode.Space) vaut true à chaque image tant que la touche Espace est maintenue enfoncée, et false dans le cas contraire. Interroge-la dans Update() et ne déplace l’objet que lorsqu’elle répond par l’affirmative : le joueur dirige alors l’objet.

Cette caisse monte à raison de lift unités par seconde tant que la touche Espace est maintenue enfoncée. Time.deltaTime permet de conserver une vitesse par seconde, comme dans la leçon précédente :

public float lift = 2f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        transform.position += new Vector3(0, lift * Time.deltaTime, 0);
    }
}

Chaque touche possède un KeyCode : KeyCode.UpArrow, KeyCode.W, KeyCode.Return, etc. Clique d’abord dans la vue du jeu pour que les touches lui soient transmises. Remarque pour Unity 6 : les nouveaux projets utilisent le nouveau Input System, et Input.GetKey déclenche une erreur tant que Active Input Handling (Project Settings, Player) n’est pas réglé sur Both.

challenge icon

Défi

Facile

Permets au joueur de diriger le cube avec les touches fléchées.

  1. Dans Update(), tant que Input.GetKey(KeyCode.RightArrow) est vrai, ajoute new Vector3(speed * Time.deltaTime, 0, 0) à transform.position.
  2. Tant que KeyCode.LeftArrow est maintenue enfoncée, soustrais le même Vector3 avec -=.

Appuie sur « Jouer », clique sur le jeu et maintiens les touches fléchées : le cube glisse vers la droite et vers la gauche. Puis appuie sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Steering : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Flèche droite : se déplacer vers la droite. Flèche gauche : se déplacer vers la gauche.
    }
}

Toutes les leçons de Les bases du scripting dans Unity

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