Ubah kostum pemain lokal
Anda dapat mengubah kostum pemain lokal ke kostum yang Anda miliki.
ZEPETO.Character.Controller versi 1.11.3 atau yang lebih tinggi harus diinstal.
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. |
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.
- 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]
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.
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.
Pertama, buat sumber daya daftar UI di mana thumbnail dan nama daftar pakaian akan ditampilkan. Sumber daya yang perlu dibuat termasuk:
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.
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
- Tambahkan ZEPETO > Typescript dan ganti nama skrip menjadi MyItemList.
- Tulis skrip contoh seperti di bawah ini.
- 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]
- 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.
Daftarkan itemPrefab yang dibuat di langkah 1 di Item Prefab dari komponen yang diterapkan MyItemList, dan daftarkan Canvas di itemCanvas.
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.