Uso dei pulsanti nell'interfaccia utente di Unity

Pagina aggiornata :
Data di creazione della pagina :

Ambiente di verifica

Finestre
  • finestre 11
Unity Editor
  • 2020.3.25f1

Prerequisiti per questo suggerimento

Le seguenti impostazioni sono state effettuate in anticipo come prerequisito per la spiegazione di questi suggerimenti.

Dapprima

Un pulsante può essere utilizzato come oggetto su cui l'utente fa clic da solo oppure può essere utilizzato per effettuare una scelta, ad esempio "sì" o "no". Se si desidera essere un po' più elaborati, è possibile utilizzare un pulsante come oggetto per selezionare una voce di elenco, ad esempio un menu.

Oltre a questo, può anche essere utilizzato per scopi di debug e quando si fa clic su un pulsante per modificare lo stato in modo arbitrario.

Fare clic sul pulsante per modificare il testo

Se fai semplicemente clic sul pulsante, eseguirai un'elaborazione. Questa volta, ogni volta che si fa clic sul pulsante, il numero di testo aumenterà di 1.

Posizionamento e configurazione dell'interfaccia utente

Aggiungere testo e pulsanti dalla gerarchia alla vista.

Puoi posizionarlo ovunque purché lo metti in un posto dove puoi vederlo. Poiché è difficile da vedere nello stato iniziale, vengono impostate impostazioni come "colore del testo bianco", "cambia dimensione", "aumenta la dimensione del carattere", ecc. Il contenuto del testo verrà modificato automaticamente in un secondo momento, quindi è possibile lasciarlo come "Nuovo testo".

L'impostazione del carattere del pulsante è divisa in "Pulsante" e "Testo", quindi seleziona Testo e impostalo.

Aggiunta di script

Selezionare la cartella Scene dal progetto, fare clic con il pulsante destro del mouse su uno spazio vuoto e scegliere Script C# per aggiungerla. Originariamente, è meglio creare lo script in una cartella separata, ma lo ometterò allo scopo di controllare l'operazione.

Il nome del file dovrebbe essere facile da capire. Immettere il maggior numero possibile di caratteri alfanumerici. ButtonClick In questo caso, è impostato su .

Una volta creato, fare doppio clic sullo script C# per aprire l'editor di script. Se l'editor di script è Visual Studio, dovrebbe essere visualizzato qualcosa di simile al seguente:

Start, Questa volta il metodo non è necessario, quindi eliminalo, Update riscrivilo e salvalo come segue.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;    // 追加

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  public void OnClick()
  {
  }
}

La sintassi di C# non è l'argomento principale di questo suggerimento, quindi non lo spiegherò. Si prega di studiare per conto proprio. Vengono discusse solo le descrizioni specifiche di Unity.

MonoBehaviour I campi scritti nelle classi da cui ereditano potranno essere impostati nell'editor di Unity. CountText Qui definiamo un oggetto di testo chiamato Per poter essere visualizzato, deve public essere pubblicato con . SerializeField Tuttavia, se si aggiunge l'attributo, sarà public possibile visualizzarlo nell'editor con accessibilità diversa da . Questa è una descrizione migliore se non si desidera accedervi il più possibile da altre classi se non allo scopo di impostarla nell'editor.

OnClick Vengono forniti metodi per descrivere cosa fare quando si fa clic su un pulsante. public Questo deve essere definito in .

Collegamento dall'editor di Unity

Tornare all'editor di Unity e selezionare una casella di controllo dalla gerarchia EventSystem .

EventSystem verrà visualizzato inspector, quindi rilascia lo script C# appena creato nell'area "Aggiungi componente" di seguito. Lo script è ora pronto per funzionare.

In effetti, questo script può essere associato a qualsiasi oggetto e Button dovrebbe essere collegato all'oggetto. In questo suggerimento, aggiungeremo a per renderlo uniformemente facile da capire EventSystem . Button Naturalmente, non c'è alcun problema con il collegamento a . Tuttavia, è meglio non attaccarlo a un oggetto completamente non correlato, poiché causerebbe confusione.

Se guardi lo script che hai aggiunto, puoi vedere che viene visualizzata la voce "Conteggio testo". Dopo aver pubblicato un campo in questo modo, sarà possibile impostare il valore dall'editor di Unity. Vogliamo accedere all'oggetto di testo quando facciamo clic sul pulsante, quindi trascinalo dalla gerarchia Text e Count Text rilascialo su . Ciò ti consentirà di accedervi dal tuo script in qualsiasi momento.

Quindi, seleziona dalla gerarchia Button e fai clic su + in Al clic nell'Inspector Button .

Quindi verrà aggiunto un elemento.

Nell'elemento in basso a destra, ho eliminato uno script allegato dalla EventSystem gerarchia. Dal momento che abbiamo bisogno di mettere l'oggetto a cui è allegato lo script qui, Se si allega uno script a un oggetto Button, è necessario includere un oggetto Button.

Se si fa clic su "Nessuna funzione", verrà visualizzato lo script allegato, quindi ButtonClick selezionare . Seleziona il metodo che hai creato OnClick al suo interno. A questo punto, quando si fa clic sul pulsante, viene chiamato il OnClick metodo.

Output del registro con il clic di un pulsante

Verrà visualizzato il registro per confermare che funziona. Puoi verificare che funzioni solo scrivendo una riga e sarà molto utile per il debug futuro, quindi è meglio ricordarlo.

ButtonClick Aprire lo script e OnClick aggiungere quanto segue a .

public void OnClick()
{
  // コンソール ログを出力
  Debug.Log("ボタンが押されました!");
}

Una volta entrato e salvato, esegui il gioco e fai clic sul pulsante.

Ogni volta che si fa clic su di esso, viene visualizzato un messaggio nella scheda della console. Ora puoi vedere che funziona.

Modificare il testo con un clic del pulsante

Ora che puoi spostare i pulsanti, lo scopo di questo suggerimento è stato raggiunto. Ora che ho posizionato l'oggetto di testo, voglio cambiare il testo ogni volta che faccio clic sul pulsante.

Riscrivere lo script come indicato di seguito.

// 省略

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  /// <summary>クリックカウント。</summary>
  private int _counter = 0;

  public void OnClick()
  {
    // コンソール ログを出力
    Debug.Log("ボタンが押されました!");

    // カウントを増やす
    _counter++;

    // カウントした数を表示する
    CountText.text = _counter.ToString();
  }
}

Il contenuto consiste semplicemente nell'incrementare il conteggio di 1 ogni volta che si fa clic e si imposta il numero sull'oggetto di testo.

Esegui il gioco e assicurati che il numero aumenti ad ogni clic.