あなたの世界を作りなさい
プレイヤーとキャラクター: 上級
FPS/TPSビューの例
2分
これらはfps/tps制御を設定する例です。 ステップ 1 カメラの位置を固定する tpsでカメラを固定するには、zepetoplayers > zepetocamera > zoomに移動し、最小値と最大値を同じに設定します。 look offset yの値を0 1に設定します。 fpsでカメラを固定するには、zepetoplayers > zepetocamera > zoomに移動し、最小値と最大値を 1に設定します。 look offset 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); } }