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


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]



2) Jika Anda menekan tombol [▶︎(putar)] untuk menjalankannya, Anda dapat melihat bahwa pemain lokal dibuat dan diubah dengan kostum berdasarkan kode item yang dimasukkan.

Document image


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.

  1. Objek Button_thumbnail: Ini adalah objek di mana komponen Raw Image dan komponen Button terdaftar untuk menampilkan gambar thumbnail item.
  2. Objek Text_name: Sebuah objek komponen Text di mana nama item akan ditampilkan.
Document image




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
Document image




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


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]
  • 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.

Document image




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.

Document image




❗️ Peringatan

  • API kostum ini hanya berlaku untuk pemain lokal dan saat ini tidak mendukung sinkronisasi multiplayer.
  • Sinkronisasi kostum multiplayer akan tersedia di masa depan.