Uporaba gumbov v uporabniškem vmesniku programa Unity

Stran posodobljena :
Datum ustvarjanja strani :

Okolje za preverjanje

Windows
  • Windows 11
Urejevalnik Unity
  • 2020.3.25F1

Predpogoji za ta nasvet

Naslednje nastavitve so bile vnaprej narejene kot predpogoj za razlago teh nasvetov.

Sprva

Gumb lahko uporabite kot predmet, ki ga uporabnik klikne sam, ali pa ga uporabite za izbiro, na primer »da« ali »ne«. Če želite malo bolj izpopolniti, lahko z gumbom kot predmetom izberete element seznama, kot je meni.

Poleg tega se lahko uporablja tudi za odpravljanje napak in pri kliku na gumb za samovoljno spreminjanje stanja.

Kliknite gumb, če želite spremeniti besedilo

Če preprosto kliknete gumb, boste opravili nekaj obdelave. Tokrat se bo vsakič, ko kliknete gumb, besedilna številka povečala za 1.

Umestitev in konfiguracija uporabniškega vmesnika

Dodajte besedilo in gumbe iz hierarhije v pogled.

Lahko ga postavite kjerkoli, če ga postavite na mesto, kjer ga lahko vidite. Ker je v začetnem stanju težko videti, so nastavljene nastavitve, kot so "bela barva besedila", "spremeni velikost", "povečaj velikost pisave" itd. Vsebina besedila se bo pozneje samodejno spremenila, tako da jo lahko pustite kot »Novo besedilo«.

Nastavitev znakov gumba je razdeljena na "Gumb" in "Besedilo", zato izberite Besedilo in ga nastavite.

Dodajanje skriptov

Izberite mapo Prizori iz projekta, z desno miškino tipko kliknite prazen prostor in izberite C# Script, da jo dodate. Prvotno je bolje ustvariti skript v ločeni mapi, vendar ga bom izpustil zaradi preverjanja operacije.

Ime datoteke mora biti lahko razumljivo. Vnesite čim več alfanumeričnih znakov. ButtonClick V tem primeru je nastavljena na .

Ko je ustvarjen, dvokliknite skript C #, da odprete urejevalnik skriptov. Če je urejevalnik skriptov Visual Studio, bi morali videti nekaj takega:

Start, Metoda tokrat ni potrebna, zato jo izbrišite, Update ponovno napišite in shranite na naslednji način.

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

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

  public void OnClick()
  {
  }
}

Sintaksa C # ni glavna tema tega nasveta, zato je ne bom razložil. Prosim, študirajte sami. Obravnavani so samo opisi, specifični za enotnost.

MonoBehaviour Polja, napisana v razredih, ki podedujejo, boste lahko nastavili v urejevalniku Unity. CountText Tukaj definiramo besedilni predmet, imenovan Da bi bil prikazan, mora public biti objavljen z . SerializeField Če pa dodate atribut, ga boste lahko prikazali v urejevalniku z dostopnostjo, public ki ni . To je boljši opis, če ne želite dostopati do njega iz drugih razredov, kolikor je to mogoče, razen za namen nastavitve v urejevalniku.

OnClick Na voljo so metode za opisovanje, kaj storiti, ko kliknete gumb. public To mora biti opredeljeno v .

Prilaganje iz urejevalnika Unity

Vrnite se v urejevalnik Unity in izberite iz hierarhije EventSystem .

EventSystem Pojavil se bo inšpektor, zato spustite skript C #, ki ste ga pravkar ustvarili, v spodnjem območju »Dodaj komponento«. Scenarij je zdaj pripravljen za delo.

Pravzaprav je ta skript mogoče priložiti vsakemu predmetu in Button ga pritrditi na predmet. V tem nasvetu bomo dodali, da bo enotno enostavno razumeti EventSystem . Button Seveda ni težav s pritrditvijo na . Vendar pa je bolje, da ga ne pritrdite na popolnoma nepovezan predmet, saj bo to povzročilo zmedo.

Če pogledate skript, ki ste ga dodali, lahko vidite, da je prikazan element "Štetje besedila". Ko objavite polje na ta način, boste lahko nastavili vrednost iz urejevalnika Unity. Do predmeta besedila želimo dostopati, ko kliknemo gumb, zato povlecite iz hierarhije Text in Count Text ga spustite na . Tako boste lahko kadar koli dostopali do njega iz skripta.

Nato izberite iz hierarhije Button in kliknite + pod Ob kliku v inšpektorju Button .

Nato bo dodan en element.

V spodnjem desnem kotu sem iz hierarhije izpustil priloženi scenarij EventSystem . Ker moramo tukaj postaviti predmet, na katerega je priložen scenarij, Če gumbu priložite skript, morate vključiti gumb.

Če kliknete »Brez funkcije«, se prikaže priloženi skript, zato ButtonClick izberite . Izberite način, ki ste ga ustvarili OnClick v njem. Zdaj, ko kliknete gumb, OnClick se metoda imenuje.

Dnevnik izhodov s klikom na gumb

Dnevnik bom prikazal, da potrdim, da deluje. Lahko preverite, ali deluje samo s pisanjem ene vrstice, in bo zelo koristno za prihodnje odpravljanje napak, zato je bolje, da si ga zapomnite.

ButtonClick Odprite skript in OnClick dodajte naslednje v .

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

Ko vnesete in shranite, zaženite igro in kliknite gumb.

Vsakič, ko kliknete nanj, se na zavihku konzole prikaže sporočilo. Zdaj lahko vidite, da deluje.

Spreminjanje besedila s klikom gumba

Zdaj, ko lahko premikate gumbe, je namen tega nasveta dosežen. Zdaj, ko sem postavil besedilni predmet, želim spremeniti besedilo vsakič, ko kliknem gumb.

Skript znova napišite na naslednji način.

// 省略

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

Vsebina je preprosto povečati število za 1 vsakič, ko kliknete in nastavite številko na besedilni predmet.

Zaženite igro in se prepričajte, da se številka z vsakim klikom poveča.