CRÉEZ VOTRE MONDE
Joueurs & Personnages : Avancé
Changer la zone de collision du personnage ZEPETO
4min
indépendamment de la forme du corps du personnage zepeto, la taille de la zone de collision du contrôleur de personnage est cohérente pour tous la zone de collision du contrôleur de personnage est adaptée à la forme de corps de base et est de forme cylindrique dans le mode scène de l'exécution, en sélectionnant un personnage zepeto généré, vous pouvez voir la zone de collision du contrôleur de personnage la hauteur d'un personnage zepeto peut varier en fonction de sa forme corporelle ou des objets équipés lorsqu'il y a une différence significative par rapport à la forme corporelle de base, la zone de collision peut parfois sembler peu naturelle 📘 veuillez vous référer au guide suivant \[ mesurer la taille de votre personnage docid\ slwxypm9hsrlhyxkkpame ] dans de tels cas, vous pouvez modifier la valeur de l'attribut collider du contrôleur de personnage à l'aide de scripts pendant l'exécution hauteur la hauteur de la zone de collision centre l'axe central de la zone de collision rayon le rayon de la zone de collision veuillez noter que les valeurs utilisées dans les exemples sont définies pour le monde de test et le compte de test ajustez les paramètres pour convenir à votre monde dans l'exemple, la valeur du rayon n'a pas été modifiée import {humanbodybones, vector3, waitforendofframe, waitforseconds } from 'unityengine'; import {knowsockets, localplayer, zepetoplayers, zepetoplayer } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class changecollider extends zepetoscriptbehaviour { private localplayer localplayer; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { this localplayer = zepetoplayers instance localplayer; // mesurer la hauteur du personnage local this startcoroutine(this cogetzepetoheight(this localplayer zepetoplayer)); }); } cogetzepetoheight(zepeto zepetoplayer) { yield new waitforendofframe(); const headposition = zepeto character getsocket(knowsockets head upper) position; const leftfootposition = zepeto character zepetoanimator getbonetransform(humanbodybones leftfoot) position; const rightfootposition = zepeto character zepetoanimator getbonetransform(humanbodybones rightfoot) position; const charactercenter = vector3 lerp(leftfootposition, rightfootposition, 0 5); const characterheight = vector3 distance(headposition, charactercenter); // hauteur du personnage local console log(characterheight); // définir la hauteur et le point central en fonction d'un ratio, en supposant que la hauteur de la forme corporelle de base soit d'environ 0 85 let controllerheight = characterheight / 0 85 1 2; let controllercentery = controllerheight / 2; this localplayer zepetoplayer character charactercontroller height = controllerheight; this localplayer zepetoplayer character charactercontroller center = new vector3(0, controllercentery, 0); } } le script essentiel implique d'accéder au contrôleur de personnage et de modifier les valeurs des propriétés this localplayer zepetoplayer character charactercontroller height = number; this localplayer zepetoplayer character charactercontroller center = vector3; il peut y avoir des cas où vous ne pouvez pas mesurer correctement la hauteur des avatars portant des objets uniques spécifiques