Attacher des objets aux personnages de ZEPETO
Attachez un objet à un personnage ZEPETO afin que lorsque le personnage se déplace, l'objet se déplace avec lui.

ÉTAPE 1 : Préparer un objet Prefab
Tout d'abord, vous devez transformer votre objet en Prefab. Créez un objet, faites-le glisser dans le dossier Asset et faites-en un Prefab.

ÉTAPE 2 : Script pour attacher l'objet à une partie spécifique du personnage
- Implémentez le code de création de personnage ZEPETO dans la scène par défaut.
📘 Veuillez vous référer au guide suivant. [Créer un personnage ZEPETO]
ÉTAPE 2-1 : Écrire le script
1) Créer une hiérarchie > Créer un objet vide et le renommer en AttachObject.
2) Créer un projet > Créer > ZEPETO > TypeScript et le renommer en AttachObject.
3) Écrire un script d'exemple comme 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 AttachObject extends ZepetoScriptBehaviour {
// L'objet prefab à attacher au corps.
public prefItem: GameObject;
// L'os auquel attacher l'objet.
public bodyBone: HumanBodyBones;
private _localCharacter: ZepetoCharacter;
Start() {
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
// Trouver le joueur local et le définir comme _localCharacter.
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
// Obtenir le composant animateur de _localCharacter.
const animator: Animator = this._localCharacter.ZepetoAnimator;
// Obtenir la position de l'os auquel attacher l'objet.
const bone: Transform = animator.GetBoneTransform(this.bodyBone);
// Créer l'objet prefab.
Object.Instantiate(this.prefItem, bone) as GameObject;
});
}
}
- Le script s'écoule comme suit :
- Start()
- Enregistrer l'écouteur d'événements ZepetoPlayers.instance.OnAddedLocalPlayer, qui se déclenchera lorsqu'un joueur local est ajouté.
- Définir le joueur local comme la variable _localCharacter.
- Obtenir le composant animateur de _localCharacter, obtenir l'emplacement spécifié dans bodyBone, et créer le prefab spécifié dans prefItem à cet emplacement.
ÉTAPE 2-2 : Définir l'emplacement de l'attachement dans l'inspecteur
1) Après avoir terminé d'écrire le script, ajoutez le script à l'objet AttachObject.
2) Dans l'Inspecteur, assignez l'élément Pref, Body Bone.
- L'élément Pref est le prefab de l'objet.
- Body Bone est l'emplacement où l'objet sera créé.
- Sélectionnez LeftHand pour donner l'impression que vous tenez l'objet dans votre main.

3) Appuyez sur le bouton Play pour exécuter et vous verrez le personnage ZEPETO avec l'objet attaché à sa main gauche.
ÉTAPE 3 : Appliquer
Vous pouvez attacher n'importe quel objet à l'emplacement souhaité du Body Bone de la même manière.
📘 Unity HumanBodyBones https://docs.unity3d.com/ScriptReference/HumanBodyBones.html
L'exemple suivant montre comment attacher un objet Coussin de Cou de BuildIt au cou du personnage pour donner l'impression que le personnage ZEPETO porte un coussin de cou.

- Vous pouvez ajuster la Position et la Rotation de l'objet de manière appropriée pour obtenir l'apparence souhaitée.

- Dans l'Inspecteur, assignez l'objet Coussin de Cou à l'élément Pref, et sélectionnez Cou pour l'os du corps.
