CRÉEZ VOTRE MONDE
Joueurs & Personnages : Consei...

Masquer et afficher l'apparence du personnage ZEPETO

4min
utilisation de la méthode renderer vous pouvez désactiver le renderer du personnage zepeto pour le rendre invisible à la caméra voici un exemple de code pour cacher et montrer l'apparence du personnage en appuyant sur un bouton 1\) créez une hiérarchie > créez un objet vide et renommez le en hideshowcharacter 2\) créez un projet > créez > zepeto > typescript et renommez le en hideshowcharacter 3\) ajoutez un script à l'objet hideshowcharacter 4\) écrivez le script d'exemple comme indiqué ci dessous 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(() => { // désactiver le renderer du personnage zepeto pour le rendre invisible à la caméra zepetoplayers instance localplayer zepetoplayer character getcomponentsinchildren\<renderer>() foreach(r => { r enabled = false; console log("cacher"); }); }); this showcharacterbtn onclick addlistener(() => { zepetoplayers instance localplayer zepetoplayer character getcomponentsinchildren\<renderer>() foreach(r => { r enabled = true; console log("montrer"); }); }); }); } } 5\) utilisez canvas > bouton pour ajouter chaque bouton à l'écran et les assigner à l'inspecteur de script 6\) veuillez appuyer sur le bouton \[▶︎(play)] pour l'exécuter modifier le calque du personnage pour gérer le masquage in addition to disabling the character's renderer, you can also hide and show the character's appearance cela se fait en utilisant le masque de culling dans la caméra zepeto le masque de culling vous permet de traiter des couches spécifiques comme invisibles lorsqu'un personnage zepeto est créé, aucune couche n'est définie par défaut le code d'exemple suivant montre comment rendre une couche spécifique invisible dans la caméra zepeto, puis changer la couche du personnage zepeto au clic d'un bouton pour le cacher et le montrer import { zepetoscriptbehaviour } from 'zepeto script'; import { camera, layermask, transform } from "unityengine"; import { zepetocharacter, zepetoplayers } from "zepeto character controller"; import { button } from "unityengine ui"; // une fonction qui change la couche de tous les sous objets d'un personnage 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; // ajouter une couche au masque de culling this zepetocamera cullingmask |= (1 << layermask nametolayer("player")); // retirer une couche du masque de culling 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"); } }