Použití tlačítek v uživatelském rozhraní Unity

Stránky aktualizovány :
Datum vytvoření stránky :

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.