Verwenden von Schaltflächen in der Unity-Benutzeroberfläche

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifikations-Umgebung

Fenster
  • Windows 11
Unity-Editor
  • 2020.3.25f1

Voraussetzungen für diesen Tipp

Die folgenden Einstellungen wurden im Vorfeld als Voraussetzung für die Erklärung dieser Tipps vorgenommen.

Zuerst

Eine Schaltfläche kann als Objekt verwendet werden, auf das der Benutzer selbst klickt, oder sie kann verwendet werden, um eine Auswahl zu treffen, z. B. "Ja" oder "Nein". Wenn Sie etwas ausführlicher werden möchten, können Sie eine Schaltfläche als Objekt verwenden, um einen Listeneintrag wie z. B. ein Menü auszuwählen.

Darüber hinaus kann es auch zu Debugging-Zwecken und beim Klicken auf eine Schaltfläche verwendet werden, um den Zustand willkürlich zu ändern.

Klicken Sie auf die Schaltfläche, um den Text zu ändern

Wenn Sie einfach auf die Schaltfläche klicken, führen Sie eine Bearbeitung durch. Jedes Mal, wenn Sie auf die Schaltfläche klicken, erhöht sich die Textzahl jedes Mal um 1.

Platzierung und Konfiguration der Benutzeroberfläche

Fügen Sie der Ansicht Text und Schaltflächen aus der Hierarchie hinzu.

Sie können es überall platzieren, solange Sie es an einem Ort platzieren, an dem Sie es sehen können. Da es im Ausgangszustand schwer zu sehen ist, werden Einstellungen wie "weiße Textfarbe", "Größe ändern", "Schriftgröße vergrößern" usw. gesetzt. Der Inhalt des Textes wird später automatisch geändert, so dass Sie ihn als "Neuer Text" belassen können.

Die Zeicheneinstellung des Buttons ist in "Button" und "Text" unterteilt, also wählen Sie Text aus und stellen Sie ihn ein.

Hinzufügen von Skripten

Wählen Sie den Ordner "Szenen" in Ihrem Projekt aus, klicken Sie mit der rechten Maustaste auf einen leeren Bereich, und wählen Sie C#-Skript aus, um ihn hinzuzufügen. Ursprünglich ist es besser, das Skript in einem separaten Ordner zu erstellen, aber ich werde es weglassen, um den Vorgang zu überprüfen.

Der Dateiname sollte leicht verständlich sein. Geben Sie so viele alphanumerische Zeichen wie möglich ein. ButtonClick In diesem Fall ist sie auf festgelegt.

Doppelklicken Sie nach der Erstellung auf das C#-Skript, um den Skript-Editor zu öffnen. Wenn es sich bei Ihrem Skript-Editor um Visual Studio handelt, sollte Folgendes angezeigt werden:

Start, Die Methode wird dieses Mal nicht benötigt, also löschen Sie sie, Update schreiben Sie sie neu und speichern Sie sie wie folgt.

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

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

  public void OnClick()
  {
  }
}

Die Syntax von C# ist nicht das Hauptthema dieses Tipps, daher werde ich sie nicht erklären. Bitte studieren Sie auf eigene Faust. Es werden nur Unity-spezifische Beschreibungen behandelt.

MonoBehaviour Felder, die in Klassen geschrieben sind, die von erben, können im Unity-Editor festgelegt werden. CountText Hier definieren wir ein Textobjekt mit dem Namen Damit sie angezeigt werden kann, muss sie public mit veröffentlicht werden. SerializeField Wenn Sie jedoch das Attribut hinzufügen, können Sie public es im Editor mit einer anderen Barrierefreiheit als anzeigen. Dies ist eine bessere Beschreibung, wenn Sie nicht so oft wie möglich von anderen Klassen aus darauf zugreifen möchten, außer um es im Editor einzurichten.

OnClick Es werden Methoden bereitgestellt, um zu beschreiben, was zu tun ist, wenn auf eine Schaltfläche geklickt wird. public Dies muss in definiert werden.

Anfügen aus dem Unity-Editor

Kehren Sie zum Unity-Editor zurück, und wählen Sie aus der Hierarchie EventSystem aus.

EventSystem -Inspektor angezeigt wird, also legen Sie das C#-Skript, das Sie gerade erstellt haben, im Bereich "Komponente hinzufügen" unten ab. Das Skript ist jetzt einsatzbereit.

Tatsächlich kann dieses Skript an jedes Objekt angehängt werden, und Button es sollte an das Objekt angehängt werden. In diesem Tipp werden wir ergänzen, um es einheitlich leicht verständlich zu EventSystem machen. Button Natürlich ist es kein Problem, es an anzuhängen. Es ist jedoch besser, es nicht an ein völlig anderes Objekt anzuhängen, da dies zu Verwirrung führt.

Wenn Sie sich das von Ihnen hinzugefügte Skript ansehen, können Sie sehen, dass der Punkt "Text zählen" angezeigt wird. Sobald Sie ein Feld auf diese Weise veröffentlicht haben, können Sie den Wert im Unity-Editor festlegen. Wir möchten auf das Textobjekt zugreifen, wenn wir auf die Schaltfläche klicken, also ziehen Sie es aus der Hierarchie Text und Count Text legen Sie es auf ab. Auf diese Weise können Sie jederzeit von Ihrem Skript aus darauf zugreifen.

Wählen Sie als Nächstes aus der Hierarchie Button aus und klicken Sie im Inspektor Button unter Bei Klick auf + .

Dann wird ein Element hinzugefügt.

Im unteren rechten Element habe ich ein Skript aus der Hierarchie EventSystem abgelegt. Da wir das Objekt, an das das Skript angehängt ist, hier ablegen müssen, Wenn Sie ein Skript an einen Button anhängen, müssen Sie einen Button einschließen.

Wenn Sie auf "Keine Funktion" klicken, wird das angehängte Skript angezeigt, also ButtonClick wählen Sie aus. Wählen Sie die Methode aus, die Sie darin erstellt haben OnClick . Wenn Sie nun auf die Schaltfläche klicken, wird die OnClick Methode aufgerufen.

Ausgabeprotokoll mit Knopfdruck

Ich gebe das Protokoll aus, um zu bestätigen, dass es funktioniert. Sie können überprüfen, ob es funktioniert, indem Sie nur eine Zeile schreiben, und es wird für das zukünftige Debuggen sehr nützlich sein, daher ist es besser, sich daran zu erinnern.

ButtonClick Öffnen Sie das Skript, und OnClick fügen Sie Folgendes hinzu.

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

Sobald Sie eingestiegen sind und gespeichert haben, starten Sie das Spiel und klicken Sie auf die Schaltfläche.

Jedes Mal, wenn Sie darauf klicken, wird eine Meldung auf der Registerkarte "Konsole" angezeigt. Jetzt können Sie sehen, dass es funktioniert.

Text mit einem Klick auf eine Schaltfläche ändern

Jetzt, da Sie die Schaltflächen verschieben können, ist der Zweck dieses Tipps. Nachdem ich das Textobjekt platziert habe, möchte ich den Text jedes Mal ändern, wenn ich auf die Schaltfläche klicke.

Schreiben Sie das Skript wie folgt um.

// 省略

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();
  }
}

Der Inhalt besteht einfach darin, die Anzahl jedes Mal um 1 zu erhöhen, wenn Sie auf das Textobjekt klicken und die Zahl festlegen.

Führen Sie das Spiel aus und stellen Sie sicher, dass die Zahl mit jedem Klick zunimmt.