CREATE YOUR WORLD
Players & Characters : Advance...
ZEPETO 캐릭터의 충돌 영역 변경하기
4min
zepeto 캐릭터의 몸매와 관계없이, 캐릭터 컨트롤러의 충돌 영역 크기는 모두 일관됩니다 캐릭터 컨트롤러의 충돌 영역은 기본 몸매에 맞춰져 있으며, 원통형입니다 런타임의 씬 모드에서 생성된 zepeto 캐릭터를 선택하면 캐릭터 컨트롤러의 충돌 영역을 볼 수 있습니다 zepeto 캐릭터의 높이는 몸매나 장착된 아이템에 따라 달라질 수 있습니다 기본 몸매와 큰 차이가 있을 경우, 충돌 영역이 때때로 부자연스럽게 보일 수 있습니다 📘 다음 가이드를 참조하십시오 \[ 캐릭터의 키 측정하기 docid\ mdajrynca6wyplshbfbrv ] 이런 경우에는 런타임 중에 스크립트를 사용하여 캐릭터 컨트롤러의 collider 속성 값을 수정할 수 있습니다 높이 충돌 영역의 높이 중심 충돌 영역의 중앙 축 반지름 충돌 영역의 반지름 예제에서 사용된 값은 테스트 월드 와 테스트 계정에 맞게 설정되어 있습니다 설정을 귀하의 월드 에 맞게 조정하십시오 예제에서는 반지름 값이 변경되지 않았습니다 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; // 로컬 캐릭터의 높이를 측정합니다 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); // 로컬 캐릭터의 높이 console log(characterheight); // 기본 몸체 형태의 높이를 약 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); } } 필수 스크립트는 캐릭터 컨트롤러에 접근하고 속성 값을 수정하는 것을 포함합니다 this localplayer zepetoplayer character charactercontroller height = number; this localplayer zepetoplayer character charactercontroller center = vector3; 특정 고유 아이템을 착용한 아바타의 높이를 정확하게 측정할 수 없는 경우가 있을 수 있습니다