CRÉEZ VOTRE MONDE
Joueurs & Personnages : Avancé

Changer le costume du joueur local

16min

Vous pouvez changer la tenue d'un joueur local pour celles que vous possédez.

ZEPETO.Character.Controller version 1.11.3 ou supérieure doit être installée.

Utilisation de l'API SetCostume

Méthode

API

Description

SetCostume($itemCode: string, $complete?: System.Action):void;

Entrez le code de l'élément (id de l'élément) comme valeur d'argument pour changer la tenue du joueur local. Recevez un rappel une fois le changement de tenue terminé.



Exemple de changement de tenue du joueur local

Vous pouvez changer la tenue du joueur local en utilisant SetCostume().

Voici un exemple de code qui crée un joueur local lorsque la scène commence, et change la tenue avec un code d'article spécifique lorsque le joueur local est créé.

1) Ajoutez ZEPETO > Typescript et nommez le script ChangeLocalPlayerCostume.

Écrivez un script d'exemple comme ci-dessous.

ChangeLocalPlayerCostume.ts


description du script

  • Ce script change la tenue du joueur local selon le code d'article donné.
  • Lorsque la scène commence, créez un joueur avec l'ID utilisateur spécifié et utilisez le CreatePlayerWithUserId() fonction.
  • Un écouteur d'événements OnAddedLocalPlayer est ajouté afin que lorsque un joueur local est ajouté, cet événement soit déclenché, et le ChangeCostume() méthode est appelée pour changer le costume.
  • Accédez à l'instance du joueur local via la propriété LocalPlayer et changez les costumes en utilisant le code d'article fourni. Une fois le changement de costume terminé, un Set Costume Complete message sera enregistré, indiquant un changement réussi.



📘 Veuillez vous référer au guide du mannequin sur la façon de vérifier l'ID de l'article. [ZEPETO Mannequin]



2) Si vous appuyez sur le bouton [▶︎(lecture)] pour l'exécuter, vous pouvez voir que le joueur local est créé et changé avec le costume basé sur le code d'article saisi.

Document image


Avant le changement de costume (gauche), après le changement de costume (droite)



  • Si l'article est un produit à durée déterminée, il sera porté après vérification de son expiration. Pour les articles qui ont expiré, un journal d'erreurs appelé Article Expiré est appelé.
  • Si l'article est un produit payé Zem, il sera porté après vérification de son appartenance à un joueur local. Pour les articles non possédés, un journal d'erreurs appelé N'a Pas ItemCode est appelé.





Exemple de Chargement d'une Liste d'Articles et de Changement de Vêtements.

Vous pouvez récupérer la liste des articles vestimentaires en utilisant GetMyItemListAsync(), qui fournit des informations sur les articles possédés par l'utilisateur.

L'exemple suivant démontre comment afficher les tenues possédées par un joueur local à l'écran et leur permettre de sélectionner et de changer de tenues.



ÉTAPE 1. Créer une interface utilisateur de liste de vêtements

Tout d'abord, créez une ressource de liste d'interface utilisateur où la miniature et le nom de la liste de vêtements seront affichés. Les ressources qui doivent être fabriquées incluent :

ÉTAPE 1-1. Créer un Préfabriqué d'Article

Après avoir chargé la liste de vêtements que le joueur local possède, nous créons une liste d'articles dans l'interface utilisateur. Le Préfabriqué d'Article sert de source pour chaque liste d'articles créée.

Lorsque le Prefab d'élément est créé, la miniature et le nom de l'élément sont affichés dans l'interface utilisateur.

Le Prefab d'élément contient les éléments suivants.

  1. Objet Button_thumbnail : C'est un objet où le composant Image brute et le composant Bouton sont enregistrés pour afficher l'image miniature de l'élément.
  2. Objet Text_name : Un objet composant Texte dans lequel le nom de l'élément sera affiché.
Document image




ÉTAPE 1-2. Configuration du Canvas

Le Canvas est l'écran de l'interface utilisateur affiché lorsque le Prefab d'élément est créé. Il est recommandé de créer une Vue défilante à l'intérieur de ce Canvas afin qu'une grande liste d'éléments puisse être récupérée.

L'objet Vue défilante à l'intérieur du Canvas est configuré comme suit.

  • L'objet Scroll View est configuré pour permettre uniquement le défilement vertical.
  • L'objet Content configure les composants suivants :
    • Groupe de mise en page en grille :
      • Taille de cellule : x : 150, Y : 150
      • Contrainte : Nombre de colonnes fixe
      • Nombre de contraintes : 5
Document image




ÉTAPE 2. Script pour charger la liste des articles et changer de tenue

ÉTAPE 2-1. Écrire un script

  • Ajouter ZEPETO > Typescript et renommer le script en MyItemList.
  • Écrire un script d'exemple comme ci-dessous.
MyItemList.ts


description du script

  • Dans la méthode Start, un nouveau joueur est créé en utilisant ZepetoPlayers.instance.CreatePlayerWithUserId() et le CoGetMyItem() coroutine est exécutée lorsque le joueur local est ajouté.
  • Le CoGetMyItem() coroutine utilise ShopService.GetMyContentItemListAsync() pour récupérer la liste des objets possédés par le joueur.
    • Demandez une liste de tous les objets dans toutes les catégories via ItemKeyword.all. Attendez que la demande soit terminée en utilisant yield new WaitUntil(() => requestItemList.keepWaiting == false).
    • Si la demande est réussie requestItemList.responseData.isSuccess, itère à travers la liste des contentItems et récupère l'image miniature de chaque objet en utilisant GetThumbnailAsync().
    • Créez un élément UI pour chaque objet en utilisant le itemPrefab fourni, et définissez l'image miniature et l'ID. Un bouton pour chaque objet est créé, et configuré pour appeler SetItemButton() avec l'ID de l'objet comme argument.
  • La SetItemButton() méthode est appelée lorsque le bouton associé à un objet est cliqué.
    • Appliquez l'objet sélectionné comme costume du personnage du joueur en utilisant ZepetoPlayers.instance.LocalPlayer.SetCostume().
    • Lorsque le costume est changé avec succès, un message de journal indiquant Set Costume Complete est affiché avec le code de l'objet.



📘 Conseils

  • Veuillez vous référer au guide suivant sur la façon de vérifier les informations sur l'élément de l'utilisateur via ShopService.GetMyContentItemListAsync(). [Obtenez des informations sur les articles détenus par un utilisateur]
  • Lorsque vous recherchez des éléments possédés par l'utilisateur, vous pouvez rechercher par catégorie en utilisant ItemKeyword et les afficher dans une liste sur l'interface utilisateur.



❗️ Avertissement La liste des vêtements récupérés via ShopService.GetMyContentItemListAsync() contient des produits périmés à durée limitée. Donc Erreur d'élément périmé le journal d'erreurs peut être appelé.



ÉTAPE 2-2. Configuration de l'inspecteur MyItemList

Enregistrez le itemPrefab créé à l'étape 1 dans le Prefab d'élément du composant auquel MyItemList est appliqué, et enregistrez le Canvas dans le itemCanvas.

Document image




ÉTAPE 3. Exécuter

Si vous appuyez sur le bouton Lecture pour l'exécuter, l'interface utilisateur du canevas affichera une liste d'objets possédés par le joueur local, et vous pouvez voir que l'objet change pour le costume correspondant lorsqu'il est sélectionné.

Document image




❗️ Avertissement

  • Cette API de costume ne s'applique qu'aux joueurs locaux et ne prend actuellement pas en charge la synchronisation multijoueur.
  • La synchronisation des costumes multijoueurs sera disponible à l'avenir.