TOLONG
FAQ Pengembangan
Bagaimana Anda menggunakan suatu Singleton?
7 mnt
singleton adalah pola desain yang memastikan hanya ada satu instance dari kelas tertentu dalam sebuah program pola singleton menyediakan satu instance global dari sebuah kelas, membuatnya mudah diakses dari skrip lain yang membutuhkannya, seperti mengelola logika, audio, ui, dan sumber daya terpusat dalam dunia dalam zepetoscript, anda dapat mengimplementasikan singleton dengan cara berikut private static instance classname = null; public static get instance() classname { 	if (this instance == null) { 	 this instance = gameobject findobjectoftype\<classname>(); 	} 	return this instance; } 👍 tips jika sudah ada gameobject dengan skrip singleton yang terpasang di scene, anda dapat menggunakan format ini jika tidak ada, tambahkan kode untuk membuat gameobject contoh new gameobject("objectname") addcomponent\<classname>(); mari kita implementasikan singleton untuk mengelola ui dalam sebuah contoh 1\) tambahkan ui > teks dan tombol ke scene atur logika untuk meningkatkan skor ketika tombol "increasescore" ditekan atur logika untuk mengurangi skor ketika tombol "decreasescore" ditekan 2\) buat skrip bernama "scoremanager," di mana singleton akan diterapkan skrip scoremanager akan bertanggung jawab untuk meningkatkan/mengurangi skor dan memperbarui teks saat dipanggil dari skrip lain import { zepetoscriptbehaviour } from 'zepeto script'; import { gameobject } from 'unityengine'; import { text } from 'unityengine ui'; export default class scoremanager extends zepetoscriptbehaviour { // deklarasi singleton private static instance scoremanager = null; public static get instance() scoremanager { if (this instance == null) { this instance = gameobject findobjectoftype\<scoremanager>(); } return this instance; } // deklarasi variabel public scoretext text; private currentscore number; start() { // set skor awal ke 0 untuk pengujian this currentscore = 0; } // skrip lain dapat memanggil increasescore public increasescore(amount number) { this currentscore += amount; this scoretext text = `skor ${this currentscore}`; } // skrip lain dapat memanggil decreasescore public decreasescore(amount number) { this currentscore = amount; this scoretext text = `skor ${this currentscore}`; } } deskripsi skrip private static instance ini adalah variabel statis privat dalam kelas, awalnya diatur ke null public static get instance properti statis ini menyediakan cara bagi kode eksternal untuk mengakses instance unik dari kelas ini periksa if (this \\ instance == null) jika null, gunakan gameobject findobjectoftype<>() untuk menemukan dan mengembalikan komponen dari tipe classname, dan menetapkannya ke variabel statis 3\) setelah menulis skrip, kembali ke inspector dan sambungkan komponen teks 4\) selanjutnya, buat skrip bernama "scorelogicsample" untuk menunjukkan cara memanggil singleton pastikan bahwa scoremanager dan scorelogicsample berada di direktori yang sama tulis kode seperti ini import { zepetoscriptbehaviour } from 'zepeto script'; import { gameobject } from 'unityengine'; import { text, button } from 'unityengine ui'; // impor skrip singleton import scoremanager from ' /scoremanager'; export default class scorelogicsample extends zepetoscriptbehaviour { public increasescorebutton button; public decreasescorebutton button; // deklarasikan variabel bertipe scoremanager private scoremanager scoremanager; start() { // tetapkan scoremanager ke variabel this scoremanager = gameobject findobjectoftype\<scoremanager>(); this increasescorebutton onclick addlistener(()=> { // panggil fungsi yang dideklarasikan dalam singleton this scoremanager increasescore(10); }); this decreasescorebutton onclick addlistener(()=> { // panggil fungsi yang dideklarasikan dalam singleton this scoremanager decreasescore(10); }); } } penting untuk menentukan jalur dengan benar saat mendapatkan skrip singleton anda dapat menyesuaikan bagian di mana scoremanager dipanggil dalam skrip anda sendiri sesuai kebutuhan 5\) tekan tombol \[▶︎(putar)] untuk menguji anda harus mengamati fungsi dalam scoremanager yang dipanggil saat anda mengklik tombol di scorelogicsample, sehingga berfungsi seperti yang diharapkan