Interagir avec un objet
Implémentez un bouton d'interaction qui apparaît lorsqu'un personnage ZEPETO s'approche d'un objet.
- Vous pouvez télécharger les ressources d'animation et de bouton utilisées dans l'exemple d'interaction et le guide à partir du lien suivant.
📘 Exemple d'interaction ZEPETO Module d'interaction Zepeto
- 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. [ZEPETO Player]
Définissez l'objet pour interagir avec le personnage ZEPETO.
1) Placez l'objet avec lequel le personnage ZEPETO interagira.
2) Créez une hiérarchie > Créer un objet vide et renommez-le DockPoint.
- C'est le point avec lequel le personnage ZEPETO interagira. Ajustez la position de l'objet.
- Vérifiez que le bouton de basculement du gizmo de transformation en haut de l'éditeur Unity est sur Local et faites pivoter l'axe Z (flèche bleue) vers l'extérieur de l'objet.
- Après avoir ajouté le composant Collider, vérifiez le isTrigger.
- Ajustez la taille du Collider pour correspondre à la portée où le joueur peut interagir avec l'objet.
3) Créez Hiérarchie > Créer un objet vide en tant qu'enfant de DockPoint et renommez-le IconPos.
1) Créer Hiérarchie > UI > Canvas en tant qu'enfant de l'objet avec lequel le personnage ZEPETO interagira et le renommer PrefIconCanvas.
- Définir le mode de rendu sur Espace Monde.
- Définir la largeur et la hauteur à 1 respectivement.
- Décochez l'option Ignorer les graphiques inversés sur le composant Graphic Raycaster.
2) Créer Hiérarchie > UI > Bouton en tant qu'enfant de PrefIconCanvas.
3) Une fois la configuration terminée, faites-en un Prefab et supprimez le PrefIconCanvas restant dans la hiérarchie.
1) Créer un projet > Créer > ZEPETO > TypeScript et le renommer InteractionIcon.
2) Écrire un script d'exemple comme ci-dessous.
- Le flux du script est le suivant :
- Mettre à jour()
- Appeler la fonction personnalisée UpdateIconRotation() pour faire pivoter le canevas de l'icône afin de correspondre à la rotation de la caméra.
- OnTriggerEnter(), OnTriggerExit()
- Lorsque vous entrez dans la zone du Collider et détectez un déclencheur, appelez la fonction personnalisée ShowIcon() pour activer l'icône.
- Lorsque vous sortez de la zone du collider, appelez la fonction personnalisée HideIcon() pour désactiver l'icône.
3) Après avoir terminé la création du script, ajoutez le script à l'objet DockPoint.
4) Assignez le Canvas d'icône de préference, la position de l'icône depuis l'inspecteur.
1) Créer Projet > Créer > ZEPETO > TypeScript et renommez-le en Interaction par geste.
2) Écrivez un script d'exemple comme ci-dessous.
- Le flux du script est le suivant :
- Démarrer()
- Lorsque l'icône est cliquée, elle se désactive et appelle la fonction personnalisée DoInteraction().
- DoInteraction()
- Si isSnapBone est coché,
- Si le siège est vide (allowOverlap est coché, ou la valeur de retour de la fonction personnalisée FindOtherPlayerNum() est inférieure à 1)
- Prenez le geste assigné à l'animationClip.
- Démarrez la Coroutine SnapBone() et attachez le bodyBone du personnage ZEPETO au targetTranform.
- Démarrez la Coroutine WaitForExit().
- Lorsque le personnage ZEPETO saute ou se déplace, ou sort de la zone du collider, annulez le geste et activez l'icône.
- Activez l'icône lorsque la capacité d'accueil est pleine.
- Si isSnapBone n'est pas coché,
- Prenez le geste assigné à l'animationClip.
- Démarrez la Coroutine WaitForExit().
3) Après avoir terminé la création du script, ajoutez le script à l'objet DockPoint.
4) Assignez le clip d'animation, Is Snap Bone, Body Bone et Allow Overlap dans l'inspecteur.
- Assignez le clip d'animation. Ce sont des gestes à adopter lors de l'interaction.
- Vérifiez Is SnapBone. Assurez-vous que la partie assignée au corps est positionnée comme un DockPoint.
- Définissez Body Bone sur Hips. Assurez-vous que la hanche est positionnée dans le DockPoint car cela sera un geste assis.
- Allow Overlap vous permet de déterminer si plusieurs personnes peuvent s'asseoir sur un seul siège.
Le bouton apparaîtra lorsque le personnage ZEPETO s'approchera de l'objet, et disparaîtra lorsqu'il s'en éloignera.
Si le geste que vous avez défini se joue lorsque vous vous approchez et interagissez avec le bouton, c'est un succès.
En plus des gestes, divers événements peuvent être mis en œuvre pour se produire après l'interaction.
Voici un exemple de mise en œuvre d'un événement qui crée un élément après une interaction.
📘 Exemple de Zepeto World - Chapitre 3 Exemple d'Interaction https://github.com/naverz/zepeto-world-sample/tree/main/Assets/Chapter3