CRÉEZ VOTRE MONDE
Interagir avec des objets
Implémentation d'un objet qui suit le personnage
3min
grâce au composant navmeshagent, vous pouvez créer un objet ai qui suit votre personnage zepeto dans ce guide, nous allons créer un objet pet qui suit votre personnage création de l’objet pet ouvrez la fenêtre navigation (obsolete) dans unity, cliquez sur window > ai > navigation (obsolete) pour ouvrir la fenêtre navigation (obsolete) définissez les zones navigables pour l’objet pet dans la fenêtre navigation (obsolete), cliquez sur l’onglet object depuis la hierarchy, sélectionnez sols, murs et obstacles à inclure dans le navmesh ajoutez les dans object pour définir les surfaces navigables ou obstacles vérifiez que navigation static est coché ✏️ pour plus d’infos sur navmesh, consultez la vidéo ci dessous générez le navmesh cliquez sur l’onglet bake puis sur le bouton bake pour créer le navmesh créez un navmeshagent sélectionnez l’objet pet dans la hierarchy ajoutez le composant navmeshagent dans l’inspector agent signifie l’objet pet naviguant avec le navmesh vous pouvez ajuster taille, vitesse, rotation, accélération, et hauteur d’obstacle ✏️ pour plus d’infos sur navmeshagent, consultez ce lien dans l’exemple, réglez stopping distance sur 3 pour que le pet s’arrête à une distance de 3 du joueur créez le script petcontroller dans la fenêtre project, cliquez + > zepeto > typescript , renommez le petcontroller ouvrez le script et copiez collez le code ci dessous import { transform } from 'unityengine'; import { navmeshagent } from 'unityengine ai'; import { zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; import { worldservice } from 'zepeto world'; export default class petcontroller extends zepetoscriptbehaviour { private target transform; private navmeshagent navmeshagent; start() { this navmeshagent = this getcomponent\<navmeshagent>(); zepetoplayers instance onaddedlocalplayer addlistener(() => { this target = zepetoplayers instance getplayer(worldservice userid) character transform; }) } update() { if (this target == null) { return; } this navmeshagent setdestination(this target position); } } explication du script au démarrage, target définit votre personnage zepeto la fonction update fixe la destination de l’agent à la position du personnage à chaque frame appliquez petcontroller à l’objet pet sélectionnez pet dans la hierarchy cliquez sur add component > zepeto script et glissez déposez petcontroller dans script cliquez play vous pouvez voir pet suivre votre personnage en évitant les obstacles création d’un pet sur la tête du personnage pour attacher le pet au corps plutôt que le faire suivre, utilisez l’attachement d’objet ✏️ pour plus d’infos, veuillez vous référer au guide attacher des objets aux personnages de zepeto docid\ lwymdrbf83eggcuikjznu créez attachpetcontroller dans la fenêtre project, cliquez + > zepeto > typescript , renommez attachpetcontroller ouvrez le script et copiez collez le code ci dessous import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { transform, animator, gameobject, humanbodybones, object } from 'unityengine'; export default class attachpetcontroller extends zepetoscriptbehaviour { public pet gameobject; public bodybone humanbodybones; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { const localcharacter = zepetoplayers instance localplayer zepetoplayer character; const animator animator = localcharacter zepetoanimator; const bone transform = animator getbonetransform(this bodybone); object instantiate(this pet, bone) as gameobject; }); } } explication du script au démarrage, le script recherche le joueur local et son composant d'animation il identifie la partie du corps sélectionnée dans la variable bodybone de l'animation du personnage il instancie ensuite l'objet animal à la position identifiée, définissant le parent de l'objet animal comme partie du corps du personnage appliquez le script attachpetcontroller à un nouvel objet dans la hierarchy, cliquez sur le bouton + > create empty pour créer un nouvel objet, puis renommez le attachpetcontroller dans l’inspector, cliquez sur add component > zepeto script , puis faites glisser le script attachpetcontroller dans le champ script faites glisser l’objet pet dans le champ pet ouvrez le menu déroulant dans le champ bodybone et sélectionnez la partie du corps du personnage à laquelle attacher l’objet pet cliquez play pour voir l’objet pet attaché au personnage