Saya telah mencari sesuatu yang seharusnya sederhana, tetapi dokumentasi Unity 5 tentang itu sudah ketinggalan zaman. Apa yang ingin saya capai adalah untuk dapat membuat Teks UI sepenuhnya dari skrip, yaitu sepenuhnya dinamis - dalam aplikasi kasus nyata saya, saya akan melakukannya dalam satu lingkaran jumlah iterasi yang tidak ditentukan sebelumnya.
Pencarian menggunakan Google akan menemukan cukup banyak contoh tentang cara melakukan itu, tetapi semua yang saya lihat baik menggunakan metode yang sudah usang (berasal dari sebelum Unity versi 5) atau hanya salah (tidak mengherankan di sini ...). Saya sudah tahu bahwa saya harus terlebih dahulu menambahkan Kanvas ke proyek saya, kemudian saya harus memasukkan using UnityEngine.UI
dalam kode C # saya, dan juga bahwa saya bisa mendeklarasikan seperti Teks UI Text _guitext
.
Namun, kode di bawah ini tidak berfungsi. Maksud saya, bukan karena crash, melainkan karena tidak ada yang ditampilkan:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MyClass: MonoBehaviour {
Text _guitext;
// Use this for initialization
void Start () {
_guitext.text = "testing";
}
// Update is called once per frame
void Update () {
}
}
Lebih buruk dari itu, tampaknya saat permainan dimainkan, tidak ada objek baru yang muncul dalam daftar hierarki objek.
Bisakah Anda tunjukkan saya ke arah yang benar di sini? Terima kasih.
Text' does not contain a definition for
teks 'dan tidak ada metode ekstensitext' of type
Teks' dapat ditemukan (apakah Anda melewatkan arahan menggunakan atau referensi rakitan?)using UnityEngine.UI
di awal skrip?1 maksud Anda Anda ingin mengubah uitext secara dinamis?
Jika Anda ingin mengubahnya, pertama-tama Anda harus melampirkan skrip ke objek game. Kemudian ikat variabel Anda. Tutorial dapat ditemukan di sini
2 Jika Anda ingin membuat uitext yang tidak ada dalam Hirarki sebelumnya.
Anda bisa menggunakan GUI .Label GUI
Masukkan instance yang dibuat di OnGUI. Ini seperti pembaruan yang disebut setiap frame.
3 Sebenarnya jawaban ke-2 tidak membuat objek uitext.
Tetapi itu akan mencapai hasil yang sama. Jika Anda benar-benar menginginkan objek uitext alih-alih efeknya. Anda dapat melakukannya di prefab, dan memulai dalam runtime. Namun, uitext haruslah anak dari kanvas.
sumber
Jika Anda mencari solusi cepat & kotor untuk debugging, Anda masih dapat menggunakan solusi Unity 4 lama. Menerapkan
OnGUI
acara dari setiap MonoBehavior yang Anda selalu aktif untuk memanggil kelas GUI untuk menambahkan beberapa elemen UI ke bingkai rendering saat ini.Jika Anda ingin menggunakan kanvas, Anda perlu menambahkan skrip ke kanvas yang:
GUIText
objek game barutransform
kanvassumber