CREATE YOUR WORLD
Players & Characters : Advance...
FPS/TPS View Example
3min
이것은 fps/tps 제어 설정의 예입니다 1단계 카메라 위치 고정 tps에서 카메라를 고정하려면 zepetoplayers > zepetocamera > zoom으로 이동하여 최소 및 최대 값을 동일하게 설정합니다 look offset y 값을 0 1로 설정합니다 fps에서 카메라를 고정하려면 zepetoplayers > zepetocamera > zoom으로 이동하여 최소 및 최대 값을 1로 설정합니다 y 오프셋 값을 0 1로 설정합니다 2단계 스크립팅 카메라의 회전을 캐릭터의 회전에 적용하는 스크립트를 추가합니다 카메라 회전 입력(ondragevent)을 받아 캐릭터의 회전을 수정하는 스크립트를 추가합니다 import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetoplayers, zepetocharacter, zepetoscreentouchpad, zepetocamera } from 'zepeto character controller'; import { vector3, time, quaternion} from 'unityengine'; import { zepetoinputcontrol } from 'rootnamespace'; export default class tpscontroller extends zepetoscriptbehaviour { private zepetoscreenpad zepetoscreentouchpad; private mycharacter zepetocharacter; private myinputcontrol zepetoinputcontrol; private mycamera zepetocamera; awake() { this myinputcontrol = new zepetoinputcontrol(); } start() { this myinputcontrol enable(); zepetoplayers instance onaddedlocalplayer addlistener(() => { this mycamera = zepetoplayers instance localplayer zepetocamera; this mycharacter = zepetoplayers instance localplayer zepetoplayer character; this zepetoscreenpad = zepetoplayers instance gameobject getcomponentinchildren\<zepetoscreentouchpad>(); this zepetoscreenpad ondragevent addlistener(deltavector => { console log(`\[ondragevent] ${deltavector tostring()}`); // 카메라의 회전은 캐릭터의 회전에 따라 수정됩니다 zepetoplayers instance zepetocamera transform rotatearound(this mycharacter transform position, vector3 up, deltavector x time deltatime 80); }); }); } update() { if ((null == this mycharacter) || (null == this mycamera)) { return; } const lookaxisrot = quaternion lookrotation(this mycamera cameraparent forward); const projrot = vector3 projectonplane(lookaxisrot eulerangles, vector3 right); // 캐릭터의 회전을 카메라의 전방 방향과 일치시킵니다 this mycharacter gameobject transform rotation = quaternion euler(projrot); } }