JPG PNG BMP GIF 3 MB Bagian ini daftar semua tampilan yang tersedia dan kontrol interaktif. Ada fungsi IMGUI lain yang mempengaruhi tata letak Kontrol, yang dijelaskan di bagian Controls Panduan.Layout section of the Guide.
Label adalah non-interaktif. Ini hanya untuk tampilan. Tidak dapat diklik atau dipindahkan. Terbaik untuk menampilkan informasi saja.
/* GUI.Label example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
void OnGUI ()
{
GUI.Label (new Rect (25, 25, 100, 30), "Label");
}
}
Button adalah tombol interaktif yang khas. Ini akan merespon satu kali ketika diklik, tidak peduli berapa lama mouse tetap tertekan. Respon terjadi segera setelah tombol mouse dirilis.
Dalam UnityGUI, Tombol akan kembali true ketika mereka diklik. Untuk mengeksekusi beberapa kode ketika Tombol diklik, Anda membungkus GUI. Fungsi tombol dalam pernyataan if. Dalam pernyataan if adalah kode yang akan dieksekusi ketika Tombol diklik.
/* GUI.Button example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
void OnGUI ()
{
if (GUI.Button (new Rect (25, 25, 100, 30), "Button"))
{
// This code is executed when the Button is clicked
}
}
}
RepeatButton adalah variasi Button biasa. Perbedaannya adalah, RepeatButton akan merespon setiap bingkai bahwa tombol mouse tetap tertekan. Ini memungkinkan Anda untuk membuat fungsi klik-dan-hold.
Dalam UnityGUI, RepeatButtons akan kembali true untuk setiap bingkai yang diklik. Untuk mengeksekusi beberapa kode saat Tombol diklik, Anda membungkus GUI. Fungsi RepeatButton dalam pernyataan if. Dalam pernyataan if adalah kode yang akan dieksekusi sementara RepeatButton tetap diklik.
/* GUI.RepeatButton example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
void OnGUI ()
{
if (GUI.RepeatButton (new Rect (25, 25, 100, 30), "RepeatButton"))
{
// This code is executed every frame that the RepeatButton remains clicked
}
}
}
Kontrol TextField adalah bidang garis tunggal interaktif yang dapat diedit yang mengandung string teks.
TeksField akan selalu menampilkan string. Anda harus memberikan string yang akan ditampilkan dalam TextField. Ketika mengedit dibuat pada string, fungsi TextField akan mengembalikan string yang diedit.
/* GUI.TextField example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private string textFieldString = "text field";
void OnGUI ()
{
textFieldString = GUI.TextField (new Rect (25, 25, 100, 30), textFieldString);
}
}
Kontrol TextArea adalah area multi-line interaktif yang dapat diedit yang mengandung string teks.
TeksArea akan selalu menampilkan string. Anda harus memberikan string yang akan ditampilkan dalam TextArea. Ketika mengedit dibuat pada string, fungsi TextArea akan mengembalikan string yang diedit.
/* GUI.TextArea example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private string textAreaString = "text area";
void OnGUI ()
{
textAreaString = GUI.TextArea (new Rect (25, 25, 100, 30), textAreaString);
}
}
Kontrol ToggleSebuah kotak centang yang memungkinkan pengguna untuk mengganti opsi atau menonaktifkan. More info
Lihat di Glossary menciptakan kotak centang dengan keadaan tetap / off. Pengguna dapat mengubah keadaan dengan mengkliknya.
Negara Toggle on/off diwakili oleh boolean yang benar/false. Anda harus menyediakan boolean sebagai parameter untuk membuat Toggle mewakili keadaan aktual. Fungsi Toggle akan mengembalikan nilai boolean baru jika diklik. Untuk menangkap berinteraksiivitas ini, Anda harus menetapkan boolean untuk menerima nilai pengembalian fungsi Toggle.
/* GUI.Toggle example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private bool toggleBool = true;
void OnGUI ()
{
toggleBool = GUI.Toggle (new Rect (25, 25, 100, 30), toggleBool, "Toggle");
}
}
Kontrol ToolbarSe baris tombol dan kontrol dasar di bagian atas Editor Unity yang memungkinkan Anda untuk berinteraksi dengan Editor dengan berbagai cara (misalnya scaling, terjemahan). More info
Lihat di Glossary pada dasarnya adalah baris Buttons. Hanya salah satu Tombol di Toolbar dapat aktif pada waktu, dan akan tetap aktif sampai tombol yang berbeda diklik. Perilaku ini meniru perilaku toolbar khas. Anda dapat menentukan sejumlah tombol arbitrase di Toolbar.
Tombol aktif di Toolbar dilacak melalui integer. Anda harus menyediakan bilangan bulat sebagai argumen dalam fungsi. Untuk membuat Toolbar interaktif, Anda harus menetapkan bilangan bulat ke nilai pengembalian fungsi. Jumlah elemen dalam array konten yang Anda berikan akan menentukan jumlah Tombol yang ditunjukkan di Toolbar.
/* GUI.Toolbar example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private int toolbarInt = 0;
private string[] toolbarStrings = {"Toolbar1", "Toolbar2", "Toolbar3"};
void OnGUI ()
{
toolbarInt = GUI.Toolbar (new Rect (25, 25, 250, 30), toolbarInt, toolbarStrings);
}
}
Kontrol SelectionGrid adalah Toolbar multi-row. Anda dapat menentukan jumlah kolom dan baris di grid. Hanya satu tombol dapat aktif pada waktu.
Tombol aktif dalam SeleksiGrid dilacak melalui bilangan bulat. Anda harus menyediakan bilangan bulat sebagai argumen dalam fungsi. Untuk membuat SeleksiGrid interaktif, Anda harus menetapkan bilangan bulat ke nilai pengembalian fungsi. Jumlah elemen dalam array konten yang Anda berikan akan menentukan jumlah Tombol yang ditunjukkan dalam SeleksiGrid. Anda juga dapat menentukan jumlah kolom melalui argumen fungsi.
/* GUI.SelectionGrid example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private int selectionGridInt = 0;
private string[] selectionStrings = {"Grid 1", "Grid 2", "Grid 3", "Grid 4"};
void OnGUI ()
{
selectionGridInt = GUI.SelectionGrid (new Rect (25, 25, 300, 60), selectionGridInt, selectionStrings, 2);
}
}
Kontrol HorizontalSlider adalah tombol geser horisontal khas yang dapat diseret untuk mengubah nilai antara nilai min dan maks yang telah ditentukan.
Posisi tombol Slider disimpan sebagai pelampung. Untuk menampilkan posisi tombol, Anda menyediakan yang mengapung sebagai salah satu argumen dalam fungsi. Ada dua nilai tambahan yang menentukan nilai minimum dan maksimum. Jika Anda ingin tombol slider dapat disesuaikan, menetapkan nilai slider mengapung menjadi nilai pengembalian fungsi Slider.
/* Horizontal Slider example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private float hSliderValue = 0.0f;
void OnGUI ()
{
hSliderValue = GUI.HorizontalSlider (new Rect (25, 25, 100, 30), hSliderValue, 0.0f, 10.0f);
}
}
Kontrol VerticalSlider adalah tombol geser vertikal khas yang dapat diseret untuk mengubah nilai antara nilai min dan maks yang telah ditentukan.
Posisi tombol Slider disimpan sebagai pelampung. Untuk menampilkan posisi tombol, Anda menyediakan yang mengapung sebagai salah satu argumen dalam fungsi. Ada dua nilai tambahan yang menentukan nilai minimum dan maksimum. Jika Anda ingin tombol slider dapat disesuaikan, menetapkan nilai slider mengapung menjadi nilai pengembalian fungsi Slider.
/* Vertical Slider example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private float vSliderValue = 0.0f;
void OnGUI ()
{
vSliderValue = GUI.VerticalSlider (new Rect (25, 25, 100, 30), vSliderValue, 10.0f, 0.0f);
}
}
Kontrol HorizontalScrollbar mirip dengan Kontrol Slider, tetapi mirip secara visual untuk menggulir elemen untuk peramban web atau prosesor kata. Kontrol ini digunakan untuk menavigasi Kontrol ScrollView.
Login Gulirbar diterapkan identik dengan Slider Horizontal dengan satu pengecualian: Ada argumen tambahan yang mengontrol lebar tombol Scrollbar itu sendiri.
/* Horizontal Scrollbar example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private float hScrollbarValue;
void OnGUI ()
{
hScrollbarValue = GUI.HorizontalScrollbar (new Rect (25, 25, 100, 30), hScrollbarValue, 1.0f, 0.0f, 10.0f);
}
}
Kontrol VerticalScrollbar mirip dengan Kontrol Slider, tetapi mirip secara visual untuk menggulir elemen untuk peramban web atau prosesor kata. Kontrol ini digunakan untuk menavigasi Kontrol ScrollView.
Gulir vertikal diimplementasikan identik dengan Slider Vertikal dengan satu pengecualian: Ada argumen tambahan yang mengontrol ketinggian tombol Scrollbar itu sendiri.
/* Vertical Scrollbar example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private float vScrollbarValue;
void OnGUI ()
{
vScrollbarValue = GUI. VerticalScrollbar (new Rect (25, 25, 100, 30), vScrollbarValue, 1.0f, 10.0f, 0.0f);
}
}
ScrollViews adalah Kontrol yang menampilkan area yang terlihat dari set kontrol yang jauh lebih besar.
Login Pandangan memerlukan dua Rects sebagai argumen. Rect pertama mendefinisikan lokasi dan ukuran area ScrollView yang dapat dilihat di layar. Rect kedua mendefinisikan ukuran ruang yang terkandung di dalam area yang terlihat. Jika ruang di dalam area yang terlihat lebih besar dari area yang terlihat, Scrollbar akan muncul sesuai. Anda juga harus menetapkan dan memberikan 2D Vector yang menyimpan posisi area yang dapat dilihat.
/* ScrollView example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private Vector2 scrollViewVector = Vector2.zero;
private string innerText = "I am inside the ScrollView";
void OnGUI ()
{
// Begin the ScrollView
scrollViewVector = GUI.BeginScrollView (new Rect (25, 25, 100, 100), scrollViewVector, new Rect (0, 0, 400, 400));
// Put something inside the ScrollView
innerText = GUI.TextArea (new Rect (0, 0, 400, 400), innerText);
// End the ScrollView
GUI.EndScrollView();
}
}
Windows adalah wadah kontrol yang dapat diseret. Mereka dapat menerima dan kehilangan fokus saat diklik. Karena ini, mereka diterapkan sedikit berbeda dari Kontrol lain. Setiap jendela memiliki nomor id, dan kontennya dinyatakan dalam fungsi terpisah yang disebut ketika jendela memiliki fokus.
Windows adalah satu-satunya kontrol yang memerlukan fungsi tambahan untuk bekerja dengan benar. Anda harus menyediakan nomor id dan nama fungsi untuk dieksekusi untuk jendela. Di dalam fungsi jendela, Anda membuat perilaku aktual atau kontrol yang terkandung.
/* Window example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private Rect windowRect = new Rect (20, 20, 120, 50);
void OnGUI ()
{
windowRect = GUI.Window (0, windowRect, WindowFunction, "My Window");
}
void WindowFunction (int windowID)
{
// Draw any Controls inside the window here
}
}
Untuk mendeteksi apakah pengguna melakukan tindakan di GUI (klik tombol, seret slider, dll), membaca nilai GUI.changed dari skrip Anda. Ini akan ditetapkan untuk benar ketika pengguna telah melakukan sesuatu, membuatnya mudah untuk memvalidasi input pengguna.
Sebuah skenario umum adalah untuk Toolbar, di mana Anda ingin mengubah nilai spesifik berdasarkan tombol di Toolbar diklik. Anda tidak ingin menetapkan nilai dalam setiap panggilan ke OnGUI(), hanya ketika salah satu tombol telah diklik.
/* GUI.changed example */
using UnityEngine;
using System.Collections;
public class GUITest : MonoBehaviour
{
private int selectedToolbar = 0;
private string[] toolbarStrings = {"One", "Two"};
void OnGUI ()
{
// Determine which button is active, whether it was clicked this frame or not
selectedToolbar = GUI.Toolbar (new Rect (50, 10, Screen.width - 100, 30), selectedToolbar, toolbarStrings);
// If the user clicked a new Toolbar button this frame, we'll process their input
if (GUI.changed)
{
Debug.Log("The toolbar was clicked");
if (0 == selectedToolbar)
{
Debug.Log("First button was clicked");
}
else
{
Debug.Log("Second button was clicked");
}
}
}
}
GUI.changed akan kembali benar jika kontrol GUI ditempatkan sebelum dimanipulasi oleh pengguna.