Menggunakan V-pad
Antarmuka kontrol diperlukan untuk memanipulasi karakter dalam dunia.
ZEPETO World pada dasarnya membuat antarmuka kontrol yang disebut V-pad saat runtime melalui ZEPETOPlayers.
V-pad dapat melakukan fungsi berikut tergantung pada area yang disentuh pemain di layar:
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-aWeQF-AtPfnvxRWh1BjEs-20240904-102410.png?format=webp)
1) Layar sentuh: Ketika Anda menyentuh area pad dan menggesernya ke atas, bawah, kiri, atau kanan, pemain lokal bergerak di sepanjang sumbu XZ.
- Ketika Anda mengetuk di dalam area pad, touchpad muncul di lokasi yang disentuh, dan menghilang setelah aksi sentuh selesai.
- Area pad default adalah sebagai berikut:
Mode layar | Ukuran kanvas | Ukuran area |
---|---|---|
Horizontal | 1334 X 750 | 600 X 450 |
Vertikal | 750 X 1334 | 375 X 500 |
2) Tombol lompat: Menekan tombol menyebabkan pemain lokal melompat. Nilai tinggi dari lompatan dapat diubah melalui Zepeto Players > Karakter > Daya Lompat.
👍 Tips Area pad dapat diubah dengan mengatur area prefab yang terdaftar di Kontrol Pemain Zepeto.
Ubah ukuran area dalam urutan berikut.
- Pilih prefab default yang terdaftar di Kontrol Pemain Zepeto dan salin prefab dengan menyeret dan menjatuhkannya ke dalam Assets.
- Pilih objek Pad di dalam Prefab yang disalin.
- Ubah Lebar dan Tinggi komponen Rect Transform ke ukuran yang diinginkan.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-PzL43bMmADc3XusmuveLJ-20240904-102409.png?format=webp)
Struktur objek V-pad yang dibuat saat runtime adalah sebagai berikut.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-puYNL9Hqefz7ZyItxuF58-20240904-102409.png?format=webp)
- 1) Pad: Objek UI layar yang dapat menggerakkan posisi karakter.
- Latar Belakang: Gambar latar belakang hitam transparan yang menunjukkan area pad.
- HandleOrigin: Area lingkaran luar dari pad. HandleOrigin mengubah posisi tergantung pada lokasi yang disentuh.
- Handle: Area lingkaran dalam dari pad. Ketika Handle disentuh dan diseret, posisinya berubah dan tidak meninggalkan area HandleOrigin.
- 2) Lompat: Objek tombol yang memungkinkan karakter untuk melompat.
- Atas: Objek gambar lompat di dalam tombol Lompat.
Untuk menerima nilai input V-pad, Anda harus mengakses komponen ZepetoScreenTouchpad dan komponen ZepetoScreenButton yang dibuat saat runtime dan mendaftarkan sebuah event.
Komponen ZepetoScreenButton adalah komponen tombol lompat karakter. Event yang dapat diakses termasuk:
Event | Deskripsi |
---|---|
OnPointerDownEvent | Event ini terjadi ketika pengguna menekan V-pad. |
OnDragEvent | Event ini terjadi saat pengguna menekan V-pad. |
OnPointerUpEvent | Event ini terjadi ketika pengguna melepaskan V-Pad. |
Komponen ZepetoScreenButton adalah komponen tombol loncat karakter. Acara yang dapat diakses termasuk:
Acara | Deskripsi |
---|---|
OnPointDownEvent | Acara ini terjadi ketika pengguna menekan tombol loncat. |
OnPointUpEvent | Acara ini terjadi ketika pengguna melepaskan tombol loncat. |
Skrip berikut adalah contoh untuk mengeluarkan nilai posisi V-pad ke konsol ketika pengguna menekan touchpad.
- Deskripsi Skrip
- Daftarkan pendengar acara yang memanggil GetPadTouch() dan GetJumpTouch() fungsi ketika pemain lokal ditambahkan ke dalam adegan.
- Fungsi GetPadTouch() adalah fungsi yang memproses acara sentuh yang terjadi pada touchpad.
- Gunakan Object.FindObjectOfType<ZepetoScreenTouchpad>() untuk menemukan objek ZepetoScreenTouchpad dalam adegan.
- Tambahkan pendengar untuk OnDragEvent. Pendengar ini akan aktif ketika acara drag terjadi pada touchpad.
- Di dalam pendengar, lokasi pegangan sentuh akan dikeluarkan ke konsol.
- Fungsi GetJumpTouch() adalah fungsi yang memproses acara yang terjadi dari tombol lompat.
- Gunakan Object.FindObjectOfType<ZepetoScreenButton>() untuk menemukan objek ZepetoScreenButton dalam adegan.
- Tambahkan pendengar untuk OnPointDownEvent dan OnPointUpEvent dari tombol lompat.
- Di dalam OnPointDownEvent, sebuah log yang disebut Jump Button Down dikeluarkan setiap kali tombol lompat ditekan.
- Di dalam OnPointUpEvent, sebuah log yang disebut Jump Button Up dikeluarkan setiap kali tombol lompat dilepaskan.
- Jika Anda menjalankannya dengan menekan tombol Putar, Anda dapat melihat nilai posisi V-pad ditampilkan di log konsol setiap kali Anda menekan V-pad. Anda juga akan melihat log konsol ditampilkan setiap kali Anda menekan atau melepaskan tombol lompat.
![Document image Document image](https://archbee-image-uploads.s3.amazonaws.com/fCt3n1oCa8rgNJ8fw9I2N-oG-K2Vj7dzIK0rZt4m30E-20240904-102410.gif)
![Document image Document image](https://archbee-image-uploads.s3.amazonaws.com/fCt3n1oCa8rgNJ8fw9I2N-eUCWzI2PWH_E55qeF6pyb-20240904-102409.gif)
Anda dapat mengontrol V-Pad menggunakan ScreenTouchPad dan ScreenButton.
Anda dapat menghidupkan/mematikan V-Pad dari UIController_TouchPad_Horizontal, dan UIController_TouchPad_Vertical Prefab.
Berikut adalah tampilan saat Touch Pad dimatikan. Anda dapat mematikan Tombol Lompatan dengan cara yang sama.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-ZWaRZnCyLCoAs2t3HUH4K-20240904-102409.png?format=webp)
Anda dapat menambahkan fungsi lompatan ganda ke tombol lompatan V-pad atau menerapkan fungsi tombol lompatan ganda kustom.
![Document image Document image](https://archbee-image-uploads.s3.amazonaws.com/fCt3n1oCa8rgNJ8fw9I2N-GFpyWVkrANXO0VPHox-q1-20240904-102410.gif)
Untuk mengaktifkan fitur lompatan ganda, aktifkan kotak centang Parameter Kustom > Lompatan Ganda di bagian Karakter dari komponen ZepetoPlayers.
- Tinggi dari lompatan ganda dapat diatur dengan menyesuaikan nilai Daya.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-GBmfx3ZmDLCMgCOvVfY9v-20240904-102409.png?format=webp)
Ada tiga cara untuk menggunakan fitur lompatan ganda pada V-pad:
Saat menggunakan Lompatan Ganda dengan Tombol V-Pad, atur sebagai berikut.
Klik prefab UIController_TouchPad_Vertical atau UIController_TouchPad_Horizontal. Anda akan dipindahkan ke folder tempat prefab asli berada di bawah folder Packages di panel Proyek.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-OPe4sz7RjAk0s4kknDCGE-20240904-102409.png?format=webp)
Salin prefab UIController_TouchPad_Vertical atau UIController_TouchPad_Horizontal dengan menyeret dan menjatuhkannya ke dalam folder Assets.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-P74OvPYftGrGR6-MZEO9P-20240904-102409.png?format=webp)
❗️ Peringatan Prefab asli di folder Packages tidak dapat dimodifikasi, jadi Anda harus menyalin salinan ke folder Assets untuk memodifikasinya. Jika Anda mencoba memodifikasi Prefab asli, akan terjadi kesalahan Immutable Prefab.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-IFEna9I6kZ5ltiW4OGxTe-20240904-102409.png?format=webp)
Klik dua kali pada prefab UIController_TouchPad_Vertical atau UIController_TouchPad_Horizontal di item Prefab yang disalin atau tekan tombol Buka Prefab di jendela Inspector untuk mengedit Prefab.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-ghHINRGChptXnEp-Gx2t--20240904-102409.png?format=webp)
Pilih objek Jump dari sub-objek Prefab.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-I6IXmbnxEwhPHbBaiCLd4-20240904-102409.png?format=webp)
Di komponen Tombol Layar Zepeto dari objek Jump, tekan tombol + di On Point Down Event() dan daftarkan sebuah acara sebagai berikut.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-AI84IiVL045TcaFojqihM-20240904-102409.png?format=webp)
- On Point Down Event()
- Hanya Runtime
- Pilih Objek : Daftarkan UIController_TouchPad_Vertical atau UIController_TouchPad_Horizontal.
- Fungsi Acara : Klik bagian No Function dan atur ke UIZepetoPlayerControl > DoubleJump() fungsi.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-j-suGhMY6tRffHIzK2Puc-20240904-102409.png?format=webp)
Jika pengaturannya sebagai berikut, itu berhasil.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-WBVuAK01mslvkJTfurw94-20240904-102409.png?format=webp)
Skrip ini memungkinkan karakter untuk melakukan lompatan ganda sebagai respons terhadap input dari tombol lompat V-pad.
Deskripsi skrip
- ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener() mendaftar pendengar yang dipicu ketika pemain lokal ditambahkan ke permainan. Ini berfungsi untuk mengonfigurasi fitur lompatan ganda yang akan ditambahkan saat pemain lokal ditambahkan.
- ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character memberikan akses ke karakter pemain lokal. Object.FindObjectOfType() menemukan objek tipe ZepetoScreenButton di scene saat ini dan menetapkannya untuk aksi lompatan.
- ScreenButton.OnPointDownEvent.AddListener() menambahkan pendengar ke OnPointDownEvent tombol layar. Pendengar ini menunggu baik sentuhan layar atau klik dan memulai aksi lompatan atau lompatan ganda.
- Di dalam pendengar, pernyataan if memeriksa apakah keadaan karakter saat ini adalah CharacterState.Jump. Jika benar, itu mengeksekusi zepetoCharacter.DoubleJump().
Setelah menulis skrip, buat GameObject kosong di scene dan tambahkan skrip DobuleJump.ts sebagai komponen.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-EWB1cSxV1eVw6JfEN0wei-20240904-102409.png?format=webp)
Jika Anda memilih untuk membuat dan menggunakan tombol Anda sendiri, silakan tambahkan skrip seperti yang ditunjukkan di bawah ini.
Skrip ini menambahkan fungsi lompatan dan lompatan ganda ke tombol yang ditentukan oleh pengguna.
Deskripsi skrip
- ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener() mendaftarkan fungsi yang akan dijalankan ketika pemain lokal ditambahkan ke dalam permainan.
- this.shotButton.onClick.AddListener() menambahkan fungsi yang akan dijalankan ketika shotButton diklik.
- Ketika fungsi dipicu, ia memeriksa apakah keadaan karakter saat ini adalah keadaan melompat dan menjalankan lompatan atau lompatan ganda.
- Jika karakter berada dalam keadaan melompat, this.zepetoCharacter.DoubleJump() dipanggil untuk melakukan lompatan ganda; jika tidak, this.zepetoCharacter.Jump() dipanggil untuk melakukan lompatan.
Setelah menulis skrip, buat GameObject kosong di dalam scene dan tambahkan skrip JumpButton.ts sebagai komponen.
Akhirnya, tetapkan tombol lompatan ke Tombol Tembakan di Inspector.
![Document image Document image](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-dMmQ2x_7Oke4Kw03GzV0I-20240904-102410.png?format=webp)
![Doc contributor](https://s3.amazonaws.com/archbee-animals/koala.png)