BUAT DUNIAMU
Pemain & Karakter: Tips

Sembunyikan dan Tampilkan Penampilan Karakter ZEPETO

4min
menggunakan metode renderer anda dapat menonaktifkan renderer karakter zepeto untuk membuatnya tidak terlihat oleh kamera berikut adalah contoh kode untuk menyembunyikan dan menampilkan penampilan karakter dengan menekan tombol 1\) buat hierarki > buat objek kosong dan ganti namanya menjadi hideshowcharacter 2\) buat proyek > buat > zepeto > typescript dan ganti namanya menjadi hideshowcharacter 3\) tambahkan skrip ke objek hideshowcharacter 4\) tulis skrip contoh seperti yang ditunjukkan di bawah ini hideshowcharacter import { renderer } from 'unityengine'; import { button } from 'unityengine ui'; import { spawninfo, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class hideshowcharacter extends zepetoscriptbehaviour { public hidecharacterbtn button; public showcharacterbtn button; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { this hidecharacterbtn onclick addlistener(() => { // nonaktifkan renderer karakter zepeto untuk membuatnya tidak terlihat oleh kamera zepetoplayers instance localplayer zepetoplayer character getcomponentsinchildren\<renderer>() foreach(r => { r enabled = false; console log("sembunyikan"); }); }); this showcharacterbtn onclick addlistener(() => { zepetoplayers instance localplayer zepetoplayer character getcomponentsinchildren\<renderer>() foreach(r => { r enabled = true; console log("tampilkan"); }); }); }); } } 5\) gunakan canvas > tombol untuk menambahkan setiap tombol ke layar dan menetapkannya ke inspector skrip 6\) tekan tombol \[▶︎(putar)] untuk menjalankannya ubah lapisan karakter untuk menangani penyembunyian selain menonaktifkan renderer karakter, anda juga dapat menyembunyikan dan menampilkan penampilan karakter ini dilakukan dengan memanfaatkan culling mask di kamera zepeto culling mask memungkinkan anda untuk memperlakukan lapisan tertentu sebagai tidak terlihat ketika karakter zepeto dibuat, tidak ada lapisan yang diatur secara default kode contoh berikut menunjukkan cara membuat lapisan tertentu tidak terlihat di kamera zepeto, dan kemudian mengubah lapisan karakter zepeto dengan mengklik tombol untuk menyembunyikan dan menampilkannya import { zepetoscriptbehaviour } from 'zepeto script'; import { camera, layermask, transform } from "unityengine"; import { zepetocharacter, zepetoplayers } from "zepeto character controller"; import { button } from "unityengine ui"; // fungsi yang mengubah lapisan semua sub objek dari karakter function changelayersrecursively(transform transform, layer string, fromlayer? string) void { if (!transform || !layer || layer length === 0) { return; } if (fromlayer) { if (transform gameobject layer === layermask nametolayer(fromlayer)) { transform gameobject layer = layermask nametolayer(layer); } } else { transform gameobject layer = layermask nametolayer(layer); } for (let i = 0; i < transform childcount; i++) { let child = transform getchild(i); changelayersrecursively(child, layer, fromlayer); } } export default class changecameralayer extends zepetoscriptbehaviour { private zepetocamera camera; public hidecharacterbtn button; public showcharacterbtn button; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { let character = zepetoplayers instance localplayer zepetoplayer character; this zepetocamera = zepetoplayers instance localplayer zepetocamera camera; // tambahkan lapisan ke culling mask this zepetocamera cullingmask |= (1 << layermask nametolayer("player")); // hapus lapisan dari culling mask this zepetocamera cullingmask &= (1 << layermask nametolayer("transparentfx")); this hidecharacterbtn onclick addlistener(() => { this sethiddenlayer(character); }); this showcharacterbtn onclick addlistener(() => { this setplayerlayer(character); }); }); } setplayerlayer(playerobject zepetocharacter) { changelayersrecursively(playerobject transform, "player"); } sethiddenlayer(playerobject zepetocharacter) { changelayersrecursively(playerobject transform, "transparentfx"); } }