Menu
CoddyTech

Pulsanti con nome

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 21 di 85.

Oltre ai tasti, Unity ha i pulsanti: nomi elencati in Input Manager (Edit, Project Settings, Input Manager), ciascuno associato a uno o più tasti. Input.GetButtonDown("Fire1") chiede informazioni sul nome, non su un tasto. Un nuovo progetto li include:

  • "Jump": barra spaziatrice
  • "Fire1": Ctrl sinistro o pulsante sinistro del mouse
  • "Fire2": Alt sinistro o pulsante destro del mouse
  • "Submit" e "Cancel": Invio ed Esc

I pulsanti del gamepad sono associati agli stessi nomi, e i tasti possono essere modificati in Input Manager senza toccare il codice. GetButton, GetButtonDown e GetButtonUp funzionano come GetKey, GetKeyDown e GetKeyUp. Questo blaster registra uno sparo per ogni pressione di Ctrl o clic:

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

Il nome è una stringa, quindi un nome scritto in modo errato viene comunque compilato. Unity lo cerca quando viene eseguita la riga e, se nessun pulsante ha quel nome, genera un errore a ogni frame: ArgumentException: Input Button Fier1 is not setup. Quando visualizzi questo messaggio, confronta il nome nel codice con l'elenco di Input Manager.

challenge icon

Sfida

Facile

Correggi il salto della rana e falla atterrare di nuovo.

  1. Premi «Gioca»: la Console mostra un errore relativo al pulsante "Jumpp". Modificalo in "Jump".
  2. Aggiungi un secondo if su Input.GetButtonUp("Jump") che sottragga new Vector3(0, hop, 0) da transform.position.

Premi «Gioca», tieni premuta la barra spaziatrice e rilasciala: la rana salta in alto, poi atterra. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity