BUAT DUNIAMU
Pemain & Karakter: Lanjutan

Ubah kostum pemain lokal

16min
anda dapat mengubah kostum pemain lokal ke kostum yang anda miliki zepeto character controller versi 1 11 3 atau yang lebih tinggi harus diinstal menggunakan api setcostume metode api deskripsi setcostume($itemcode string, $complete? system action)\ void; masukkan kode item (id item) sebagai nilai argumen untuk mengubah kostum pemain lokal terima callback setelah perubahan kostum selesai contoh perubahan kostum pemain lokal anda dapat mengubah kostum pemain lokal menggunakan setcostume() berikut adalah contoh kode yang membuat pemain lokal saat adegan dimulai, dan mengubah kostum dengan kode item tertentu ketika pemain lokal dibuat 1\) tambahkan zepeto > typescript dan beri nama skrip changelocalplayercostume tulis skrip contoh seperti di bawah ini changelocalplayercostume ts import { spawninfo, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; import { worldservice } from 'zepeto world'; export default class changelocalplayercostume extends zepetoscriptbehaviour { public itemcode string; // ketika adegan dimulai, buat pemain dengan id pengguna yang diberikan dan ubah kostumnya start() { // buat pemain baru dengan id pengguna yang ditentukan zepetoplayers instance createplayerwithuserid(worldservice userid, new spawninfo(), true); // tambahkan pendengar ke acara onaddedlocalplayer, yang dipicu ketika pemain lokal ditambahkan zepetoplayers instance onaddedlocalplayer addlistener(() => { // panggil metode changecostume dengan kode item yang diberikan untuk mengubah kostum this changecostume(this itemcode); }); } // metode untuk mengubah kostum pemain lokal menggunakan kode item yang diberikan changecostume(itemcode string) { // gunakan properti localplayer untuk mengakses instance pemain lokal dan mengatur kostumnya menggunakan kode item yang diberikan zepetoplayers instance localplayer setcostume(itemcode, () => { // setelah perubahan kostum selesai, catat pesan yang menunjukkan perubahan berhasil console log(`set costume complete ${itemcode}`); }); } } deskripsi skrip skrip ini mengubah pakaian pemain lokal sesuai dengan kode item yang diberikan ketika adegan dimulai, buat pemain dengan id pengguna yang ditentukan dan gunakan createplayerwithuserid() fungsi listener acara onaddedlocalplayer ditambahkan sehingga ketika pemain lokal ditambahkan, acara tersebut dipicu, dan changecostume() metode dipanggil untuk mengubah kostum akses instance pemain lokal melalui properti localplayer dan ubah kostum menggunakan kode item yang diberikan setelah perubahan kostum selesai, sebuah set costume complete pesan akan dicatat, menunjukkan perubahan yang berhasil 📘 silakan merujuk ke panduan manekin tentang cara memeriksa id item \[ \[err] zepeto mannequin docid\ vpxaz cddqqowepea0n42 ] 2\) jika anda menekan tombol \[▶︎(putar)] untuk menjalankannya, anda dapat melihat bahwa pemain lokal dibuat dan diubah dengan kostum berdasarkan kode item yang dimasukkan sebelum perubahan kostum (kiri), setelah perubahan kostum (kanan) jika item adalah produk jangka tetap, itu akan dikenakan setelah memeriksa apakah sudah kedaluwarsa untuk item yang sudah kedaluwarsa, log kesalahan yang disebut item kedaluwarsa disebut jika item adalah produk yang dibayar zem, itu akan dikenakan setelah memeriksa apakah dimiliki oleh pemain lokal untuk item yang tidak dimiliki, log kesalahan yang disebut tidak memiliki itemcode disebut contoh memuat daftar item dan mengganti pakaian anda dapat mengambil daftar item pakaian dengan memanfaatkan getmyitemlistasync() , yang memberikan informasi tentang item yang dimiliki oleh pengguna contoh berikut menunjukkan bagaimana menampilkan pakaian yang dimiliki oleh pemain lokal di layar dan memungkinkan mereka untuk memilih dan mengganti pakaian langkah 1 buat ui daftar pakaian pertama, buat sumber daya daftar ui di mana thumbnail dan nama daftar pakaian akan ditampilkan sumber daya yang perlu dibuat termasuk langkah 1 1 buat prefab item setelah memuat daftar pakaian yang dimiliki pemain lokal, kita membuat daftar item di ui prefab item berfungsi sebagai sumber untuk setiap daftar item yang dibuat saat prefab item dibuat, thumbnail dan nama item ditampilkan di ui prefab item berisi elemen elemen berikut objek button thumbnail ini adalah objek di mana komponen raw image dan komponen button terdaftar untuk menampilkan gambar thumbnail item objek text name sebuah objek komponen text di mana nama item akan ditampilkan langkah 1 2 menyiapkan kanvas kanvas adalah layar ui yang ditampilkan saat prefab item dibuat disarankan untuk membuat scroll view di dalam kanvas ini agar daftar item yang besar dapat diambil objek scroll view di dalam kanvas diatur sebagai berikut objek scroll view diatur untuk hanya mengizinkan scrolling vertikal objek konten mengatur komponen berikut grup tata letak grid ukuran sel x 150, y 150 keterbatasan jumlah kolom tetap jumlah keterbatasan 5 langkah 2 skrip untuk memuat daftar item dan mengubah pakaian langkah 2 1 tulis skrip tambahkan zepeto > typescript dan ganti nama skrip menjadi myitemlist tulis skrip contoh seperti di bawah ini myitemlist ts import { zepetoscriptbehaviour } from 'zepeto script'; import { shopservice, itemkeyword } from 'zepeto module shop'; import { zepetopropertyflag } from 'zepeto'; import { gameobject, object, recttransform, texture2d, transform, waituntil } from 'unityengine'; import { button, layoutrebuilder, rawimage, text } from 'unityengine ui'; import { spawninfo, zepetoplayers } from 'zepeto character controller'; import { worldservice } from 'zepeto world'; import { item } from 'zepeto module content'; export default class checkmyitemlist extends zepetoscriptbehaviour { public itemprefab gameobject; public itemcanvas transform; // ketika adegan dimulai, buat pemain dengan id pengguna yang diberikan dan mulai mengambil serta menampilkan item start() { // buat pemain baru dengan id pengguna yang ditentukan zepetoplayers instance createplayerwithuserid(worldservice userid, new spawninfo(), true); // tambahkan pendengar ke acara onaddedlocalplayer, yang dipicu ketika pemain lokal ditambahkan zepetoplayers instance onaddedlocalplayer addlistener(() => { // mulai coroutine cogetmyitem untuk mengambil dan menampilkan item this startcoroutine(this cogetmyitem()); }); } // coroutine untuk mengambil dan menampilkan item cogetmyitem() { // minta daftar item dengan kata kunci "semua" dan tanpa filter var requestitemlist = shopservice getmycontentitemlistasync(itemkeyword all, null); // tunggu hingga permintaan selesai yield new waituntil(() => requestitemlist keepwaiting == false); if (requestitemlist responsedata issuccess) { let contentitems item\[] = requestitemlist responsedata items; console log(contentitems length); for (let i = 0; i < contentitems length; ++i) { const property zepetopropertyflag = contentitems\[i] property; // minta tekstur thumbnail untuk item var texturereq = contentitems\[i] getthumbnailasync(); yield new waituntil(() => texturereq keepwaiting == false); let thumbnailtexture texture2d = texturereq responsedata texture; // buat prefab item dan atur propertinya const item = object instantiate(this itemprefab, this itemcanvas) as gameobject; item getcomponentinchildren\<rawimage>() texture = thumbnailtexture; item getcomponentinchildren\<text>() text = contentitems\[i] id; // tambahkan pendengar klik ke tombol item untuk mengubah kostum saat diklik item getcomponentinchildren\<button>() onclick addlistener(() => { this setitembutton(contentitems\[i] id); }); } } // paksa pembangunan ulang tata letak untuk memastikan posisi elemen ui yang tepat const rect = this itemcanvas gameobject getcomponent\<recttransform>(); layoutrebuilder forcerebuildlayoutimmediate(rect); } // metode untuk mengubah kostum pemain lokal berdasarkan kode item yang diberikan setitembutton(itemcode string) { // gunakan properti zepetoplayers instance localplayer untuk mengakses instance pemain lokal dan mengubah kostumnya zepetoplayers instance localplayer setcostume(itemcode, () => { // setelah perubahan kostum selesai, catat pesan yang menunjukkan perubahan berhasil console log(`set kostum selesai ${itemcode}`); }); } } deskripsi skrip dalam metode start, pemain baru dibuat menggunakan zepetoplayers instance createplayerwithuserid() dan cogetmyitem() coroutine dieksekusi ketika pemain lokal ditambahkan coroutine cogetmyitem() menggunakan shopservice getmycontentitemlistasync() untuk mengambil daftar item yang dimiliki oleh pemain minta daftar semua item di semua kategori melalui itemkeyword all tunggu hingga permintaan selesai menggunakan yield new waituntil(() => requestitemlist keepwaiting == false) jika permintaan berhasil requestitemlist responsedata issuccess , iterasi melalui daftar contentitems dan ambil gambar thumbnail setiap item menggunakan getthumbnailasync() buat elemen ui untuk setiap item menggunakan itemprefab yang disediakan, dan atur gambar thumbnail dan id sebuah tombol untuk setiap item dibuat, dan diatur untuk memanggil setitembutton() dengan id item sebagai argumen metode setitembutton() dipanggil ketika tombol yang terkait dengan item diklik terapkan item yang dipilih sebagai kostum karakter pemain menggunakan zepetoplayers instance localplayer setcostume() ketika kostum berhasil diubah, pesan log yang mengatakan set costume complete ditampilkan bersama dengan kode item 📘 tips silakan merujuk ke panduan berikut tentang cara memeriksa informasi item pengguna melalui shopservice getmycontentitemlistasync() \[ dapatkan informasi tentang barang yang dimiliki oleh pengguna docid 0irs rto28m d5wgh1vrj ] saat mencari item yang dimiliki oleh pengguna, anda dapat mencari berdasarkan kategori menggunakan itemkeyword dan menampilkannya dalam daftar di ui ❗️ peringatan daftar pakaian yang diambil melalui shopservice getmycontentitemlistasync() berisi produk terbatas waktu yang sudah kedaluwarsa jadi item kedaluwarsa log kesalahan dapat dipanggil langkah 2 2 mengatur inspektor myitemlist daftarkan itemprefab yang dibuat di langkah 1 di item prefab dari komponen yang diterapkan myitemlist, dan daftarkan canvas di itemcanvas langkah 3 jalankan jika anda menekan tombol putar untuk menjalankannya, antarmuka kanvas akan menampilkan daftar item yang dimiliki oleh pemain lokal, dan anda dapat melihat bahwa item berubah menjadi kostum yang sesuai saat dipilih ❗️ peringatan api kostum ini hanya berlaku untuk pemain lokal dan saat ini tidak mendukung sinkronisasi multiplayer sinkronisasi kostum multiplayer akan tersedia di masa depan