Menu
CoddyTech

Pulsanti con nome

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 14 di 67.

Oltre ai tasti, Unity ha anche i pulsanti: nomi elencati nell'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 include questi:

  • "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 nell'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 male viene comunque compilato. Unity lo cerca quando viene eseguita la riga e, se nessun pulsante ha quel nome, genera un'eccezione a ogni frame: ArgumentException: Input Button Fier1 is not setup. Quando vedi questo messaggio, confronta il nome nel codice con l'elenco dell'Input Manager.

challenge icon

Sfida

Facile

La rana salta mentre il pulsante Jump è premuto: premendo Jump si solleva di hop unità una volta, e rilasciando Jump torna giù della stessa quantità. Il codice iniziale esegue già il sollevamento, ma genera un errore non appena si avvia il gioco.

Premi Play e leggi l'errore nella Console. Correggilo, aggiungi l'atterraggio al rilascio, poi premi Check.

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);
        }
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di scripting in Unity