CRÉEZ VOTRE MONDE
Joueurs & Personnages : Avancé
Exemple de vue FPS/TPS
3min
voici des exemples de réglage du contrôle fps/tps étape 1 fixer la position de la caméra pour fixer la caméra en tps, allez dans zepetoplayers > zepetocamera > zoom et réglez la valeur min et max sur la même valeur réglez la valeur look offset y sur 0 1 pour fixer la caméra en fps, allez dans zepetoplayers > zepetocamera > zoom et réglez la valeur min et max sur 1 réglez la valeur de décalage de regard y à 0,1 étape 2 scriptage ajoutez un script qui applique la rotation de la caméra à la rotation du personnage ajoutez un script pour corriger la rotation du personnage en recevant l'entrée de rotation de la caméra (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()}`); // la rotation de la caméra est corrigée en fonction de la rotation du personnage 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); // faire correspondre la rotation du personnage avec la direction avant de la caméra this mycharacter gameobject transform rotation = quaternion euler(projrot); } }