Použití tlačítek v uživatelském rozhraní Unity
Ověřovací prostředí
- Windows
-
- Systém Windows 11
- Unity Editor
-
- 2020.3.25f1
Předpoklady pro tento tip
Následující nastavení byla provedena předem jako předpoklad pro vysvětlení těchto tipů.
Nejprve
Tlačítko lze použít jako objekt, na který uživatel klikne samostatně, nebo jej lze použít k provedení volby, například "ano" nebo "ne". Pokud chcete být trochu propracovanější, můžete použít tlačítko jako objekt k výběru položky seznamu, například nabídky.
Kromě toho jej lze použít také pro účely ladění a při kliknutí na tlačítko libovolně změnit stav.
Klikněte na tlačítko pro změnu textu
Pokud jednoduše kliknete na tlačítko, provedete nějaké zpracování. Tentokrát se při každém kliknutí na tlačítko číslo textu zvýší o 1.
Umístění a konfigurace uživatelského rozhraní
Přidejte text a tlačítka z hierarchie do zobrazení.
Můžete jej umístit kamkoli, pokud jej umístíte na místo, kde jej můžete vidět. Vzhledem k tomu, že je v počátečním stavu špatně vidět, jsou nastavena nastavení jako "bílá barva textu", "změnit velikost", "zvětšit velikost písma" atd. Obsah textu se později automaticky změní, takže jej můžete ponechat jako "Nový text".
Nastavení znaků tlačítka je rozděleno na "Tlačítko" a "Text", takže vyberte Text a nastavte jej.
Přidávání skriptů
Vyberte složku Scény z projektu, klikněte pravým tlačítkem myši na prázdné místo a vyberte skript jazyka C# a přidejte ho. Původně je lepší vytvořit skript v samostatné složce, ale pro účely kontroly operace jej vynechám.
Název souboru by měl být snadno srozumitelný. Zadejte co nejvíce alfanumerických znaků.
ButtonClick
V tomto případě je nastavena na .
Po vytvoření poklikejte na skript jazyka C# a otevřete editor skriptů. Pokud je vaším editorem skriptů Visual Studio, mělo by se zobrazit něco takového:
Start
, Metoda tentokrát není potřeba, proto ji smažte, Update
přepište a uložte následujícím způsobem.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 追加
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
public void OnClick()
{
}
}
Syntaxe jazyka C# není hlavním tématem tohoto tipu, proto ji nebudu vysvětlovat. Prosím, studujte sami. Diskutuje se jenom o popisech specifických pro Unity.
MonoBehaviour
Pole napsaná ve třídách, které dědí z, bude možné nastavit v editoru Unity.
CountText
Zde definujeme textový objekt s názvem
Aby se zobrazil public
, musí být publikován pomocí .
SerializeField
Pokud však atribut přidáte, budete public
jej moci zobrazit v editoru s jiným usnadněním než .
Toto je lepší popis, pokud k němu nechcete přistupovat co nejvíce z jiných tříd než za účelem nastavení v editoru.
OnClick
K dispozici jsou metody, které popisují, co dělat, když se klikne na tlačítko.
public
To musí být definováno v .
Připojení z editoru Unity
Vraťte se do Unity Editoru a vyberte z hierarchie EventSystem
.
EventSystem
inspektor, takže přetáhněte skript jazyka C#, který jste právě vytvořili, do oblasti "Přidat komponentu" níže.
Skript je nyní připraven k práci.
Ve skutečnosti může být tento skript připojen k libovolnému objektu a Button
měl by být připojen k objektu.
V tomto tipu přidáme, aby byl jednotně snadno pochopitelný EventSystem
.
Button
Samozřejmě není problém jej připojit k . Je však lepší jej nepřipevňovat ke zcela nesouvisejícímu objektu, protože by to způsobilo zmatek.
Pokud se podíváte na skript, který jste přidali, uvidíte, že se zobrazí položka "Count Text".
Jakmile publikujete pole tímto způsobem, budete moct nastavit hodnotu z Unity Editoru.
Když klikneme na tlačítko, chceme získat přístup k textovému objektu, takže přetáhněte z hierarchie Text
a Count Text
pusťte jej na .
To vám umožní kdykoli k němu přistupovat z vašeho skriptu.
Dále vyberte z hierarchie Button
a klikněte na + v části Při kliknutí v inspektoru Button
.
Poté bude přidána jedna položka.
V pravé dolní položce jsem vypustil skript připojený z EventSystem
hierarchie.
Vzhledem k tomu, že sem potřebujeme vložit objekt, ke kterému je skript připojen,
Pokud připojujete skript k tlačítku, musíte zahrnout tlačítko.
Pokud kliknete na "Žádná funkce", zobrazí se přiložený skript, takže ButtonClick
vyberte .
Vyberte metodu, kterou jste v něm vytvořili OnClick
.
Nyní, když kliknete na tlačítko, OnClick
metoda je volána.
Výstup protokolu kliknutím na tlačítko
Vypíšu protokol, abych potvrdil, že funguje. To, že to funguje, si můžete ověřit pouhým napsáním jednoho řádku a bude to velmi užitečné pro budoucí ladění, takže je lepší si to zapamatovat.
ButtonClick
Otevřete skript a OnClick
přidejte následující položky do .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
Jakmile zadáte a uložíte, spusťte hru a klikněte na tlačítko.
Pokaždé, když na něj kliknete, zobrazí se na kartě konzoly zpráva. Nyní vidíte, že to funguje.
Změna textu kliknutím na tlačítko
Nyní, když můžete tlačítka přesouvat, bylo účelu tohoto tipu dosaženo. Nyní, když jsem umístil textový objekt, chci změnit text při každém kliknutí na tlačítko.
Přepište skript následujícím způsobem.
// 省略
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();
}
}
Obsahem je jednoduše zvýšit počet o 1 pokaždé, když kliknete a nastavíte číslo na textový objekt.
Spusťte hru a ujistěte se, že se číslo zvyšuje s každým kliknutím.