Gombok használata a Unity felhasználói felületén

Oldal frissítve :
Oldal létrehozásának dátuma :

Ellenőrzési környezet

Windows
  • Windows 11 esetén
Unity-szerkesztő
  • 2020.3.25f1

A tipp előfeltételei

A következő beállításokat előre elvégeztük a tippek magyarázatának előfeltételeként.

Először

A gomb használható objektumként, amelyre a felhasználó önállóan kattint, vagy választásra használható, például "igen" vagy "nem". Ha egy kicsit bonyolultabb szeretne lenni, használhat egy gombot objektumként egy listaelem, például egy menü kiválasztásához.

Ezen felül hibakeresési célokra is használható, és ha egy gombra kattint az állapot önkényes megváltoztatásához.

Kattintson a gombra a szöveg módosításához

Ha egyszerűen rákattint a gombra, akkor feldolgozza. Ezúttal minden alkalommal, amikor rákattint a gombra, a szöveges szám 1-gyel nő.

Felhasználói felület elhelyezése és konfigurálása

Szöveg és gombok hozzáadása a hierarchiából a nézethez.

Bárhol elhelyezheti, amennyiben olyan helyre helyezi, ahol láthatja. Mivel a kezdeti állapotban nehéz látni, olyan beállítások vannak beállítva, mint a "fehér szöveg színe", "méret módosítása", "betűméret növelése" stb. A szöveg tartalma később automatikusan megváltozik, így "Új szövegként" hagyhatja.

A gomb karakterbeállítása "Gomb" és "Szöveg" részre oszlik, ezért válassza a Szöveg lehetőséget, és állítsa be.

Parancsfájlok hozzáadása

Válassza ki a Jelenetek mappát a projektből, kattintson a jobb gombbal egy üres helyre, és válassza a C#-szkript lehetőséget a hozzáadásához. Eredetileg jobb, ha a szkriptet külön mappában hozzuk létre, de a művelet ellenőrzése céljából kihagyom.

A fájlnévnek könnyen érthetőnek kell lennie. Adjon meg minél több alfanumerikus karaktert. ButtonClick Ebben az esetben .

A létrehozás után kattintson duplán a C#-szkriptre a szkriptszerkesztő megnyitásához. Ha a szkriptszerkesztő a Visual Studio, az alábbihoz hasonlót kell látnia:

Start, A módszerre ezúttal nincs szükség, ezért törölje, Update írja át és mentse el az alábbiak szerint.

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

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

  public void OnClick()
  {
  }
}

A C# szintaxisa nem a fő témája ennek a tippnek, ezért nem magyarázom el. Kérjük, tanuljon egyedül. Csak a Unity-specifikus leírásokat tárgyaljuk.

MonoBehaviour Az öröklődő osztályokban írt mezők beállíthatók a Unity-szerkesztőben. CountText Itt definiálunk egy szöveges objektumot, amelynek neve Ahhoz, hogy megjelenjen, public közzé kell tenni a használatával. SerializeField Ha azonban hozzáadja az attribútumot, public akkor a szerkesztőben nem . Ez egy jobb leírás, ha nem akarod elérni más osztályokból, amennyire csak lehetséges, kivéve a szerkesztőben való beállítás céljából.

OnClick Módszerek állnak rendelkezésre annak leírására, hogy mi a teendő, ha egy gombra kattintanak. public Ezt a paraméterben kell meghatározni.

Csatolás a Unity-szerkesztőből

Térjen vissza a Unity-szerkesztőhöz, és válasszon a hierarchiából EventSystem .

EventSystem Megjelenik az inspector, ezért dobja el az imént létrehozott C#-szkriptet az alábbi "Összetevő hozzáadása" területen. A szkript most már készen áll a munkára.

Valójában ez a szkript bármely objektumhoz csatolható, és Button az objektumhoz kell csatolni. Ebben a tippben hozzáadjuk, hogy egységesen könnyen érthető EventSystem legyen . Button Természetesen nincs probléma a -hez való rögzítéssel. Azonban jobb, ha nem csatolja azt egy teljesen független tárgyhoz, mivel zavart okoz.

Ha megnézi a hozzáadott szkriptet, láthatja, hogy megjelenik a "Szöveg számlálása" elem. Miután ilyen módon közzétett egy mezőt, beállíthatja az értéket a Unity-szerkesztőből. Szeretnénk elérni a szöveges objektumot, amikor rákattintunk a gombra, ezért húzza át a hierarchiából Text , és Count Text dobja rá . Ez lehetővé teszi, hogy bármikor hozzáférjen a szkriptből.

Ezután válasszon a hierarchiából Button , és kattintson a + gombra a Kattintásra alatt a vizsgálóban Button .

Ezután egy elem kerül hozzáadásra.

A jobb alsó elemben eldobtam egy szkriptet, amely a EventSystem hierarchiából van csatolva. Mivel ide kell tennünk azt az objektumot, amelyhez a szkript csatolva van, Ha parancsfájlt csatol egy gombhoz, tartalmaznia kell egy gombot.

Ha a "Nincs funkció" gombra kattint, megjelenik a csatolt szkript, ezért ButtonClick válassza a lehetőséget. Válassza ki a benne létrehozott OnClick módszert. Most, amikor rákattint a gombra, a OnClick metódus meghívásra kerül.

Kimeneti napló egy gombnyomással

Kiírom a naplót, hogy megerősítsem, hogy működik. Ellenőrizheti, hogy csak egy sor írásával működik-e, és nagyon hasznos lesz a jövőbeni hibakereséshez, ezért jobb emlékezni rá.

ButtonClick Nyissa meg a szkriptet, és OnClick adja hozzá a következőt a elemhez.

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

Miután belépett és elmentette, futtassa a játékot, és kattintson a gombra.

Minden alkalommal, amikor rákattint, egy üzenet jelenik meg a konzol lapon. Most láthatja, hogy működik.

Szöveg módosítása egy kattintással

Most, hogy mozgathatja a gombokat, ennek a tippnek a célja elért. Most, hogy elhelyeztem a szövegobjektumot, minden alkalommal módosítani szeretném a szöveget, amikor a gombra kattintok.

Írja át a szkriptet az alábbiak szerint.

// 省略

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

A tartalom egyszerűen az, hogy minden kattintáskor 1-gyel növelje a számot, és állítsa be a számot a szöveges objektumra.

Futtassa a játékot, és győződjön meg arról, hogy a szám minden kattintással növekszik.