Verwenden von Schaltflächen in der Unity-Benutzeroberfläche
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.