Mise en œuvre de la téléportation
Implémente un portail à travers lequel le personnage ZEPETO peut se téléporter à deux points différents.

ÉTAPE 1 : Définir le point de téléportation cible
- Implémentez le code de création du personnage ZEPETO dans la scène par défaut.
📘 Veuillez vous référer au guide suivant. [Créer un personnage ZEPETO]
1) Créez des points vers lesquels se téléporter.
- Pour ce guide, nous les appellerons points A et B.
- Créez une Hiérarchie > Objet 3D > Plan, et renommez-le en Plan_A.

2) Ajoutez un objet Portal qui initiera un téléport.
- Assurez-vous d'ajouter un Collider pour interagir avec l'objet.
- Ajustez la taille de la zone pour détecter les collisions.
- Assurez-vous de vérifier Is Trigger.

3) Créez un total de 2 points de téléportation de la même manière.


- Ajustez la Position afin que les points ne se chevauchent pas.

ÉTAPE 2 : Écrire un script
1) Créer un projet > Créer > ZEPETO > TypeScript et le renommer en Téléport.
2) Écrire un script d'exemple comme ci-dessous.
- Logique pour téléporter avec destinationObject lorsqu'une collision avec un personnage ZEPETO est détectée dans la zone de collision de l'objet auquel le script est attaché.
import { Collider, Vector3, Quaternion, GameObject } from 'UnityEngine';
import { SpawnInfo, ZepetoCharacter, ZepetoPlayer, ZepetoPlayers } from 'ZEPETO.Character.Controller';
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class Teleport extends ZepetoScriptBehaviour {
// L'objet de destination vers lequel se téléporter
public destinationObject: GameObject;
private _localCharacter: ZepetoCharacter;
Start() {
// Trouver le joueur local et le définir à _localCharacter
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
});
}
OnTriggerEnter(collider: Collider) {
// Ne pas exécuter la fonction si _localCharacter n'est pas encore défini ou si le gameObject en collision n'est pas _localCharacter
if (this._localCharacter == null || collider.gameObject != this._localCharacter.gameObject) {
return;
}
// Téléporter le _localCharacter à la position de destinationObject
this._localCharacter.Teleport(this.destinationObject.transform.position, Quaternion.identity);
}
}
3) Après avoir terminé d'écrire le script, ajoutez le script à l'objet Portail qui initiera le téléport.
4) Dans l'inspecteur, assignez l'objet de destination.
- Objet de destination : un objet portail pour arriver à la fin du téléport.

ÉTAPE 3 : Exécuter
Téléportez le personnage ZEPETO du point A au point B lorsqu'il est près du portail.

- Ce guide ne traite que de la téléportation des joueurs locaux que je manipule.
- Dans le cas de mondes multijoueurs, la synchronisation de la position des autres joueurs est également requise.
- En utilisant le composant de synchronisation de l'exemple multijoueur, la synchronisation de la position est facile à mettre en œuvre.
📘 Exemple Multijoueur - Composant Multijoueur Zepeto https://github.com/naverz/zepeto-multiplay-example/tree/main/Assets/Zepeto Multiplay Component