Menggunakan tombol di UI Unity

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi

Windows
  • jendela 11
Editor Kesatuan
  • 25f1/3/2020

Prasyarat untuk tip ini

Pengaturan berikut telah dibuat sebelumnya sebagai prasyarat untuk penjelasan tips ini.

Pada awalnya

Tombol dapat digunakan sebagai objek yang diklik pengguna sendiri, atau dapat digunakan untuk membuat pilihan, seperti "ya" atau "tidak." Jika Anda ingin sedikit lebih rumit, Anda bisa menggunakan tombol sebagai objek untuk memilih item daftar seperti menu.

Selain itu, ini juga dapat digunakan untuk tujuan debugging dan ketika mengklik tombol untuk mengubah status secara sewenang-wenang.

Klik tombol untuk mengubah teks

Jika Anda cukup mengklik tombol, Anda akan melakukan beberapa pemrosesan. Kali ini, setiap kali Anda mengklik tombol, nomor teks akan bertambah 1.

Penempatan dan Konfigurasi UI

Tambahkan teks dan tombol dari hierarki ke tampilan.

Anda dapat menempatkannya di mana saja selama Anda meletakkannya di tempat di mana Anda dapat melihatnya. Karena sulit untuk melihat dalam keadaan awal, pengaturan seperti "warna teks putih", "ubah ukuran", "tingkatkan ukuran font", dll diatur. Konten Teks akan diubah secara otomatis nanti, sehingga Anda dapat membiarkannya sebagai "Teks Baru".

Pengaturan karakter tombol dibagi menjadi "Tombol" dan "Teks", jadi pilih Teks dan atur.

Menambahkan Skrip

Pilih folder Scenes dari proyek Anda, klik kanan pada ruang kosong, dan pilih C# Script untuk menambahkannya. Awalnya, lebih baik membuat skrip di folder terpisah, tetapi saya akan menghilangkannya untuk tujuan memeriksa operasi.

Nama file harus mudah dimengerti. Masukkan karakter alfanumerik sebanyak mungkin. ButtonClick Dalam hal ini, diatur ke .

Setelah dibuat, klik dua kali skrip C# untuk membuka editor skrip. Jika editor skrip Anda adalah Visual Studio, Anda akan melihat sesuatu seperti ini:

Start, Metode ini tidak diperlukan kali ini, jadi hapus, Update tulis ulang dan simpan sebagai 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 # bukanlah topik utama dari tip ini, jadi saya tidak akan menjelaskannya. Silakan belajar sendiri. Hanya deskripsi khusus Unity yang dibahas.

MonoBehaviour Bidang yang ditulis di kelas yang mewarisi dari akan dapat diatur di Editor Unity. CountText Di sini, kita mendefinisikan objek teks yang disebut Agar dapat ditampilkan, itu public harus diterbitkan dengan . SerializeField Namun, jika Anda menambahkan atribut, Anda public akan dapat menampilkannya di editor dengan aksesibilitas selain . Ini adalah deskripsi yang lebih baik jika Anda tidak ingin mengaksesnya dari kelas lain sebanyak mungkin selain untuk tujuan mengaturnya di editor.

OnClick Metode disediakan untuk menjelaskan apa yang harus dilakukan ketika tombol diklik. public Ini harus didefinisikan dalam .

Melampirkan dari Editor Unity

Kembali ke Editor Unity dan pilih dari hierarki EventSystem .

EventSystem inspektur akan muncul, jadi jatuhkan skrip C# yang baru saja Anda buat di area "Tambahkan Komponen" di bawah ini. Skrip sekarang siap digunakan.

Bahkan, skrip ini dapat dilampirkan ke objek apa pun, dan Button harus dilampirkan ke objek. Dalam tip ini, kami akan menambahkan untuk membuatnya mudah dimengerti EventSystem secara seragam . Button Tentu saja, tidak ada masalah dengan melampirkannya ke . Namun, lebih baik tidak melampirkannya ke objek yang sama sekali tidak terkait, karena akan menyebabkan kebingungan.

Jika Anda melihat skrip yang Anda tambahkan, Anda dapat melihat bahwa item "Hitung Teks" ditampilkan. Setelah Anda menerbitkan bidang dengan cara ini, Anda akan dapat mengatur nilai dari Editor Unity. Kami ingin mengakses objek teks ketika kami mengklik tombol, jadi seret dari hierarki Text dan Count Text jatuhkan. Ini akan memungkinkan Anda untuk mengaksesnya dari skrip Anda kapan saja.

Selanjutnya, pilih dari hierarki Button dan klik + di bawah Saat Klik di Inspektur Button .

Kemudian satu item akan ditambahkan.

Di item kanan bawah, saya telah menjatuhkan skrip yang dilampirkan dari EventSystem hierarki. Karena kita perlu meletakkan objek yang dilampirkan skrip di sini, Jika Anda melampirkan skrip ke Tombol, Anda perlu menyertakan Tombol.

Jika Anda mengklik "Tidak Ada Fungsi", skrip terlampir akan ditampilkan, jadi ButtonClick pilih . Pilih metode yang Anda buat OnClick di dalamnya. Sekarang ketika Anda mengklik tombol, metode ini OnClick dipanggil.

Log keluaran dengan mengklik tombol

Saya akan menampilkan log untuk mengonfirmasi bahwa itu berfungsi. Anda dapat memeriksa apakah itu berfungsi hanya dengan menulis satu baris, dan itu akan sangat berguna untuk debugging di masa mendatang, jadi lebih baik mengingatnya.

ButtonClick Buka skrip dan OnClick tambahkan yang berikut ini ke .

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

Setelah Anda masuk dan menyimpan, jalankan game dan klik tombol.

Setiap kali Anda mengkliknya, sebuah pesan muncul di tab konsol. Sekarang Anda dapat melihat bahwa itu berfungsi.

Mengubah teks dengan klik tombol

Sekarang Anda dapat memindahkan tombol, tujuan tip ini telah tercapai. Sekarang saya telah menempatkan objek teks, saya ingin mengubah teks setiap kali saya mengklik tombol.

Tulis ulang skrip sebagai 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();
  }
}

Konten hanya untuk menambah hitungan dengan 1 setiap kali Anda mengklik dan mengatur angka ke objek teks.

Jalankan game dan pastikan jumlahnya meningkat dengan setiap klik.