Utilizarea butoanelor din interfața de utilizare Unity

Pagina actualizată :
Data creării paginii :

Mediul de verificare

Windows
  • Ferestre 11
Unity Editor
  • 2020.3.25F1

Cerințe preliminare pentru acest sfat

Următoarele setări au fost făcute în avans ca o condiție prealabilă pentru explicarea acestor sfaturi.

La început

Un buton poate fi folosit ca obiect pe care utilizatorul face clic singur sau poate fi folosit pentru a face o alegere, cum ar fi "da" sau "nu". Dacă doriți să obțineți un pic mai elaborat, puteți utiliza un buton ca obiect pentru a selecta un element de listă, cum ar fi un meniu.

În plus, poate fi utilizat și în scopuri de depanare și atunci când faceți clic pe un buton pentru a schimba starea în mod arbitrar.

Faceți clic pe buton pentru a modifica textul

Dacă faceți clic pur și simplu pe buton, veți face unele procesări. De data aceasta, de fiecare dată când faceți clic pe buton, numărul textului va crește cu 1.

Plasarea și configurarea interfeței de utilizare

Adăugați text și butoane din ierarhie în vizualizare.

Îl puteți plasa oriunde, atâta timp cât îl puneți într-un loc unde îl puteți vedea. Deoarece este dificil de văzut în starea inițială, sunt setate setări precum "culoarea textului alb", "modificarea dimensiunii", "creșterea dimensiunii fontului" etc. Conținutul textului va fi modificat automat mai târziu, astfel încât să îl puteți lăsa ca "Text nou".

Setarea caracterelor butonului este împărțită în "Buton" și "Text", deci selectați Text și setați-l.

Adăugarea scripturilor

Selectați folderul Scene din proiect, faceți clic dreapta pe un spațiu gol și selectați C# Script pentru a-l adăuga. Inițial, este mai bine să creați scriptul într-un dosar separat, dar îl voi omite în scopul verificării operației.

Numele fișierului trebuie să fie ușor de înțeles. Introduceți cât mai multe caractere alfanumerice posibil. ButtonClick În acest caz, este setat la .

Odată creat, faceți dublu clic pe scriptul C# pentru a deschide editorul de scripturi. Dacă editorul de scripturi este Visual Studio, ar trebui să vedeți ceva de genul:

Start, Metoda nu este necesară de data aceasta, așa că ștergeți-o, Update rescrieți-o și salvați-o după cum urmează.

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

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

  public void OnClick()
  {
  }
}

Sintaxa lui C# nu este subiectul principal al acestui sfat, așa că nu o voi explica. Vă rugăm să studiați pe cont propriu. Sunt discutate numai descrierile specifice Unității.

MonoBehaviour Câmpurile scrise în clasele de la care moștenesc vor putea fi setate în Editorul de unitate. CountText Aici, definim un obiect text numit Pentru a fi afișat, trebuie public publicat cu . SerializeField Cu toate acestea, dacă adăugați atributul, public îl veți putea afișa în editor cu altă accesibilitate decât . Aceasta este o descriere mai bună dacă nu doriți să o accesați din alte clase cât mai mult posibil, decât în scopul configurării acesteia în editor.

OnClick Sunt furnizate metode pentru a descrie ce trebuie făcut atunci când se face clic pe un buton. public Acest lucru trebuie definit în .

Atașarea de la editorul Unity

Reveniți la Editorul de unități și selectați din ierarhie EventSystem .

EventSystem inspectorul va apărea, așa că aruncați scriptul C # pe care tocmai l-ați creat în zona "Adăugați componentă" de mai jos. Scenariul este acum gata să funcționeze.

De fapt, acest script poate fi atașat la orice obiect și Button ar trebui atașat obiectului. În acest sfat, vom adăuga la pentru a face uniform ușor de înțeles EventSystem . Button Desigur, nu există nicio problemă cu atașarea acestuia la . Cu toate acestea, este mai bine să nu-l atașați la un obiect complet independent, deoarece va provoca confuzie.

Dacă vă uitați la scriptul pe care l-ați adăugat, puteți vedea că este afișat elementul "Count Text". După ce ați publicat un câmp în acest fel, veți putea seta valoarea din Editorul Unity. Vrem să accesăm obiectul text când facem clic pe buton, așa că trageți din ierarhie Text și Count Text fixați-l . Acest lucru vă va permite să îl accesați din script în orice moment.

Apoi, selectați din ierarhie Button și faceți clic pe + sub La clic în inspector Button .

Apoi se va adăuga un element.

În elementul din dreapta jos, am renunțat la un script atașat din EventSystem ierarhie. Deoarece trebuie să punem obiectul la care este atașat scriptul aici, Dacă atașați un script la un buton, trebuie să includeți un buton.

Dacă faceți clic pe "Fără funcție", scriptul atașat va fi afișat, deci ButtonClick selectați . Selectați metoda pe care ați creat-o OnClick în ea. Acum, când faceți clic pe buton, se apelează metoda OnClick .

Jurnal de ieșire cu un clic pe un buton

Voi scoate jurnalul pentru a confirma că funcționează. Puteți verifica dacă funcționează doar scriind o linie și va fi foarte util pentru depanarea viitoare, deci este mai bine să vă amintiți.

ButtonClick Deschideți scriptul și OnClick adăugați următoarele la .

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

După ce ați intrat și ați salvat, rulați jocul și faceți clic pe buton.

De fiecare dată când faceți clic pe el, apare un mesaj în fila consolei. Acum puteți vedea că funcționează.

Schimbați textul cu un clic pe buton

Acum că puteți muta butoanele, scopul acestui sfat a fost atins. Acum că am plasat obiectul text, vreau să schimb textul de fiecare dată când fac clic pe buton.

Rescrieți scriptul după cum urmează.

// 省略

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

Conținutul este pur și simplu să incrementați numărul cu 1 de fiecare dată când faceți clic și setați numărul la obiectul text.

Rulați jocul și asigurați-vă că numărul crește cu fiecare clic.