Gombok használata a Unity felhasználói felületén
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.