Menggunakan butang dalam UI Perpaduan
Persekitaran pengesahan
- Windows
-
- Windows 11
- Penyunting Perpaduan
-
- 2020.3.25f1
Prasyarat untuk petua ini
Tetapan berikut telah dibuat terlebih dahulu sebagai prasyarat untuk penjelasan petua ini.
Pada mulanya
Butang boleh digunakan sebagai objek yang diklik oleh pengguna sendiri, atau ia boleh digunakan untuk membuat pilihan, seperti "ya" atau "tidak." Jika anda ingin mendapatkan sedikit lebih terperinci, anda boleh menggunakan butang sebagai objek untuk memilih item senarai seperti menu.
Di samping itu, ia juga boleh digunakan untuk tujuan penyahpepijatan dan apabila mengklik butang untuk menukar keadaan sewenang-wenangnya.
Klik butang untuk menukar teks
Jika anda hanya klik butang, anda akan melakukan beberapa pemprosesan. Kali ini, setiap kali anda mengklik butang, nombor teks akan meningkat sebanyak 1.
Peletakan dan Konfigurasi UI
Menambah teks dan butang daripada hierarki pada pandangan.
Anda boleh meletakkannya di mana sahaja selagi anda meletakkannya di tempat di mana anda dapat melihatnya. Oleh kerana sukar untuk dilihat dalam keadaan awal, tetapan seperti "warna teks putih", "menukar saiz", "meningkatkan saiz fon", dan lain-lain ditetapkan. Kandungan Teks akan ditukar secara automatik kemudian, jadi anda boleh meninggalkannya sebagai "Teks Baru".
Tetapan watak butang dibahagikan kepada "Butang" dan "Teks", jadi pilih Teks dan tetapkannya.
Menambah Skrip
Pilih folder Scenes daripada projek anda, klik kanan pada ruang kosong dan pilih C# Script untuk menambahnya. Pada asalnya, adalah lebih baik untuk membuat skrip dalam folder berasingan, tetapi saya akan meninggalkannya untuk tujuan menyemak operasi.
Nama fail harus mudah difahami. Masukkan sebanyak mungkin aksara angka abjad.
ButtonClick
Dalam kes ini, ia ditetapkan kepada .
Setelah dibuat, klik dua kali skrip C# untuk membuka editor skrip. Jika editor skrip anda adalah Visual Studio, anda sepatutnya melihat sesuatu seperti ini:
Start
, Kaedah ini tidak diperlukan kali ini, jadi padamkannya, Update
tulis semula dan simpan seperti berikut.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 追加
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
public void OnClick()
{
}
}
Sintaks C# bukan topik utama petua ini, jadi saya tidak akan menerangkannya. Sila belajar sendiri. Hanya penerangan khusus Perpaduan dibincangkan.
MonoBehaviour
Bidang yang ditulis dalam kelas yang diwarisi akan dapat ditetapkan dalam Editor Perpaduan.
CountText
Di sini, kami mentakrifkan objek teks yang dipanggil
Agar ia dipaparkan, ia public
mesti diterbitkan dengan .
SerializeField
Walau bagaimanapun, jika anda menambah atribut, anda public
akan dapat memaparkannya dalam editor dengan kebolehcapaian selain daripada .
Ini adalah penerangan yang lebih baik jika anda tidak mahu mengaksesnya dari kelas lain sebanyak mungkin selain daripada tujuan menetapkannya dalam editor.
OnClick
Kaedah disediakan untuk menerangkan apa yang perlu dilakukan apabila butang diklik.
public
Ini mesti ditakrifkan dalam .
Melampirkan dari Editor Perpaduan
Kembali ke Editor Perpaduan dan pilih dari hierarki EventSystem
.
EventSystem
pemeriksa akan muncul, jadi lepaskan skrip C# yang baru sahaja anda buat di kawasan "Tambah Komponen" di bawah.
Skrip kini bersedia untuk berfungsi.
Malah, skrip ini boleh dilampirkan pada mana-mana objek, dan Button
ia harus dilampirkan pada objek.
Dalam petua ini, kami akan menambah untuk menjadikannya mudah difahami EventSystem
.
Button
Sudah tentu, tidak ada masalah dengan melampirkannya kepada . Walau bagaimanapun, adalah lebih baik untuk tidak melampirkannya pada objek yang sama sekali tidak berkaitan, kerana ia akan menyebabkan kekeliruan.
Jika anda melihat skrip yang anda tambah, anda dapat melihat bahawa item "Kira Teks" dipaparkan.
Sebaik sahaja anda telah menerbitkan medan dengan cara ini, anda akan dapat menetapkan nilai dari Editor Perpaduan.
Kami ingin mencapai objek teks apabila kami mengklik butang, jadi seret dari hierarki Text
dan Count Text
lepaskannya .
Ini akan membolehkan anda mengaksesnya dari skrip anda pada bila-bila masa.
Seterusnya, pilih daripada hierarki Button
dan klik + di bawah Klik dalam Pemeriksa Button
.
Kemudian satu item akan ditambah.
Dalam item kanan bawah, saya telah menjatuhkan skrip yang EventSystem
dilampirkan dari hierarki.
Oleh kerana kita perlu meletakkan objek yang mana skrip dilampirkan di sini,
Jika anda melampirkan skrip ke Butang, anda perlu memasukkan Butang.
Jika anda mengklik "Tiada Fungsi", skrip yang dilampirkan akan dipaparkan, jadi ButtonClick
pilih .
Pilih kaedah yang anda buat OnClick
di dalamnya.
Sekarang apabila anda mengklik butang, kaedah itu OnClick
dipanggil.
Log keluaran dengan klik butang
Saya akan mengeluarkan log untuk mengesahkan bahawa ia berfungsi. Anda boleh menyemak bahawa ia berfungsi hanya dengan menulis satu baris, dan ia akan menjadi sangat berguna untuk penyahpepijatan masa depan, jadi lebih baik untuk mengingatinya.
ButtonClick
Buka skrip dan OnClick
tambah yang berikut kepada .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
Sebaik sahaja anda memasukkan dan menyimpan, jalankan permainan dan klik butang.
Setiap kali anda mengkliknya, mesej muncul dalam tab konsol. Sekarang anda dapat melihat bahawa ia berfungsi.
Ubah teks dengan klik butang
Sekarang anda boleh menggerakkan butang, tujuan petua ini telah dicapai. Sekarang saya telah meletakkan objek teks, saya ingin menukar teks setiap kali saya mengklik butang.
Tulis semula skrip seperti berikut.
// 省略
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();
}
}
Kandungannya hanya untuk meningkatkan kiraan sebanyak 1 setiap kali anda mengklik dan menetapkan nombor ke objek teks.
Jalankan permainan dan pastikan nombor meningkat dengan setiap klik.