创造你的世界
玩家及角色:进阶
FPS/TPS视角示例
2分
这些是设置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); } }