Používanie tlačidiel v používateľskom rozhraní Unity
Prostredie overovania
- Windows
-
- Windows 11
- Editor jednoty
-
- 2020.3.25f1
Predpoklady pre tento tip
Nasledujúce nastavenia boli vykonané vopred ako predpoklad pre vysvetlenie týchto tipov.
Najskôr
Tlačidlo môže byť použité ako objekt, na ktorý používateľ klikne sám, alebo ho možno použiť na výber, napríklad "áno" alebo "nie". Ak chcete byť trochu prepracovanejší, môžete použiť tlačidlo ako objekt na výber položky zoznamu, ako je napríklad ponuka.
Okrem toho sa dá použiť aj na účely ladenia a pri kliknutí na tlačidlo ľubovoľne zmeniť stav.
Kliknutím na tlačidlo zmeníte text
Ak jednoducho kliknete na tlačidlo, urobíte nejaké spracovanie. Tentoraz sa pri každom kliknutí na tlačidlo číslo textu zvýši o 1.
Umiestnenie a konfigurácia používateľského rozhrania
Pridajte text a tlačidlá z hierarchie do zobrazenia.
Môžete ho umiestniť kdekoľvek, pokiaľ ho umiestnite na miesto, kde ho môžete vidieť. Pretože je ťažké vidieť v počiatočnom stave, nastavia sa nastavenia ako "farba bieleho textu", "zmena veľkosti", "zväčšenie veľkosti písma" atď. Obsah textu sa neskôr automaticky zmení, takže ho môžete ponechať ako "Nový text".
Nastavenie znakov tlačidla je rozdelené na "Tlačidlo" a "Text", preto vyberte Text a nastavte ho.
Pridávanie skriptov
Vyberte priečinok Scény z projektu, kliknite pravým tlačidlom myši na prázdne miesto a pridajte ho výberom položky C# Script. Pôvodne je lepšie vytvoriť skript v samostatnom priečinku, ale za účelom kontroly operácie ho vynechám.
Názov súboru by mal byť ľahko zrozumiteľný. Zadajte čo najviac alfanumerických znakov.
ButtonClick
V tomto prípade je nastavená na .
Po vytvorení dvakrát kliknite na skript C# a otvorte editor skriptov. Ak je editorom skriptov Visual Studio, malo by sa zobraziť niečo takéto:
Start
, Metóda tentoraz nie je potrebná, preto ju vymažte, Update
prepíšte a uložte nasledovne.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 追加
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
public void OnClick()
{
}
}
Syntax C # nie je hlavnou témou tohto tipu, takže ju nebudem vysvetľovať. Prosím, študujte sami. Diskutuje sa len o opisoch špecifických pre jednotu.
MonoBehaviour
Polia napísané v triedach, ktoré dedia z, bude možné nastaviť v Editore jednoty.
CountText
Tu definujeme textový objekt s názvom
Aby mohol byť zobrazený, public
musí byť zverejnený s .
SerializeField
Ak však tento atribút pridáte, public
budete ho môcť zobraziť v editore s inou prístupnosťou ako .
Toto je lepší popis, ak k nemu nechcete pristupovať z iných tried čo najviac okrem účelu nastavenia v editore.
OnClick
K dispozícii sú metódy opisujúce, čo robiť po kliknutí na tlačidlo.
public
Toto musí byť definované v .
Pripojenie z editora Unity
Vráťte sa do editora jednoty a vyberte z hierarchie EventSystem
.
EventSystem
Zobrazí sa inšpektor, takže presuňte skript C#, ktorý ste práve vytvorili, do oblasti "Pridať komponent" nižšie.
Skript je teraz pripravený na prácu.
V skutočnosti môže byť tento skript pripojený k akémukoľvek objektu a Button
mal by byť pripojený k objektu.
V tomto tipe pridáme k, aby to bolo jednotne ľahko pochopiteľné EventSystem
.
Button
Samozrejme, nie je problém ho pripojiť k . Je však lepšie ho nepripájať k úplne nesúvisiacemu objektu, pretože to spôsobí zmätok.
Ak sa pozriete na pridaný skript, môžete vidieť, že sa zobrazí položka "Spočítať text".
Po publikovaní poľa týmto spôsobom budete môcť nastaviť hodnotu z editora jednotiek.
Chceme získať prístup k textovému objektu, keď klikneme na tlačidlo, takže presuňte myšou z hierarchie Text
a Count Text
pustite ho .
To vám umožní kedykoľvek pristupovať zo skriptu.
Potom vyberte z hierarchie Button
a kliknite na + v časti On Kliknite na inšpektora Button
.
Potom sa pridá jedna položka.
V pravej dolnej položke som vypustil priložený skript z EventSystem
hierarchie.
Keďže sem musíme umiestniť objekt, ku ktorému je skript pripojený,
Ak pripájate skript k tlačidlu, musíte zahrnúť tlačidlo.
Ak kliknete na "Žiadna funkcia", zobrazí sa priložený skript, takže ButtonClick
vyberte .
Vyberte metódu, ktorú ste v ňom vytvorili OnClick
.
Teraz, keď kliknete na tlačidlo, OnClick
metóda sa volá.
Výstupný protokol kliknutím na tlačidlo
Vypracujem protokol, aby som potvrdil, že funguje. Môžete skontrolovať, či to funguje len napísaním jedného riadku, a bude to veľmi užitočné pre budúce ladenie, takže je lepšie si ho zapamätať.
ButtonClick
Otvorte skript a OnClick
pridajte nasledujúci text do .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
Po zadaní a uložení spustite hru a kliknite na tlačidlo.
Zakaždým, keď naň kliknete, na karte Konzola sa zobrazí správa. Teraz vidíte, že to funguje.
Zmena textu kliknutím na tlačidlo
Teraz, keď môžete posúvať tlačidlá, účel tohto tipu bol dosiahnutý. Po umiestnení textového objektu chcem zmeniť text pri každom kliknutí na tlačidlo.
Prepíšte skript nasledovne.
// 省略
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();
}
}
Obsahom je jednoducho zvýšenie počtu o 1 pri každom kliknutí a nastavenie čísla na textový objekt.
Spustite hru a uistite sa, že číslo sa zvyšuje s každým kliknutím.