CRÉEZ VOTRE MONDE
Scriptage
GameObjects et Composants
13min
dans le monde, il est très courant de créer des objets ou de modifier ou d'ajouter des composants spécifiques à des objets zepetoscript prend en charge la même interface que celle utilisée dans le script unity exemples de base de gameobject et de composant créer et supprimer des objets de jeu gameobject // gameobject créer const tempobj = new gameobject(); const obj = object instantiate(tempobj); // gameobject détruire object destroy(obj); pour obtenir les composants des gameobjects ou en ajouter de nouveaux, utilisez getcomponent ou addcomponent composant // getcomponent avec générique const mytransform = this getcomponent\<transform>(); // addcomponent avec générique const animator = this gameobject addcomponent\<animator>(); vérifiez l'exemple de code complet pour le composant gameobject voici un exemple qui couvre la création et la modification des propriétés de gameobject, l'ajout de composants et la destruction gameobjectsample import { gameobject, object, transform, animator, vector3, waitforseconds } from 'unityengine'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class gameobjectsample extends zepetoscriptbehaviour { private testobject gameobject; start() { // créer un gameobject vide const tempobj = new gameobject(); this testobject = object instantiate(tempobj) as gameobject; // changer le nom de l'objet this testobject name = "testobject"; // changer les informations de transformation de l'objet this testobject transform position = new vector3(3,3,3); // attacher un composant à l'objet this testobject gameobject addcomponent\<animator>(); // exemple d'utilisation de getcomponent const animator = this testobject getcomponent\<animator>(); if(animator != null) { console log("getcomponent succès"); } // détruire l'objet après 5 secondes en utilisant une coroutine this startcoroutine(this destroyobject()); } destroyobject() { yield new waitforseconds(5); // détruire le gameobject object destroy(this testobject); } } utiliser find les méthodes find associées prennent également en charge le même style d'interface dans zepetoscript que dans le script unity méthodes description gameobject find() il trouve et renvoie un objet gameobject actif basé sur le nom dans la scène actuelle \ renvoie null si non trouvé gameobject findgameobjectwithtag() il trouve et renvoie un objet gameobject actif basé sur le tag dans la scène actuelle \ trouve et renvoie le premier objet correspondant au tag spécifié parmi les objets actifs, renvoie null si non trouvé gameobject findgameobjectswithtag() trouve tous les objets gameobject actifs avec un tag spécifique dans la scène actuelle et les renvoie sous forme de tableau \ renvoie un tableau vide si aucun n'est trouvé pour l'exemple, configurez la scène comme suit ajoutez plusieurs objets 3d et spécifiez tous leurs tags comme 3d créez un objet vide pour attacher le script, et renommez le en findsample typescript import { zepetoscriptbehaviour } from 'zepeto script'; import { gameobject, transform } from 'unityengine'; export default class findsample extends zepetoscriptbehaviour { public tempobj1 gameobject; public tempobj2 gameobject; public tempobj3 gameobject\[]; start() { // trouve le gameobject cible avec le nom spécifié // si plusieurs gameobjects ont le même nom, le premier trouvé sera retourné this tempobj1 = gameobject find("cube"); if(this tempobj1 != null) { console log("succès de la recherche du gameobject"); } // trouve le gameobject cible avec le tag spécifié // si plusieurs gameobjects ont le même tag, le premier trouvé sera retourné this tempobj2 = gameobject findgameobjectwithtag("3d"); if(this tempobj2 != null) { console log("succès de findgameobjectwithtag"); } // retourne un tableau de gameobjects qui ont le tag spécifié this tempobj3 = gameobject findgameobjectswithtag("3d"); if(this tempobj3 != null) { console log("succès de findgameobjectswithtag"); } } } l'inspecteur est vide lorsque vous ajoutez un script dans l'objet findsample appuyez sur le bouton play pour l'exécuter, et vous pouvez confirmer dans la fenêtre de l'inspecteur que chaque objet a été assigné et vérifier le succès de la recherche d'objets via la fenêtre de la console création de prefabs explorons comment créer des prefabs pendant l'exécution tout d'abord, ajoutez un objet 3d > cube à la scène appuyez sur ajouter un composant dans l'inspecteur du cube, et ajoutez rigidbody ensuite, faites glisser le cube vers la zone de projet pour en faire un prefab puisque nous allons utiliser le prefab, supprimez le cube dans la scène veuillez écrire le script ci dessous typescript import { gameobject, object, vector3, waitforseconds } from 'unityengine'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class clonesample extends zepetoscriptbehaviour { public cloneprefab gameobject; start() { this startcoroutine(this doroutine()); } doroutine() { while(true) { yield null; // create a clone const clone = object instantiate(this cloneprefab) as gameobject; // set the height of the clone object clone transform position = new vector3(0, 10, 0); // destroy it after 5 seconds of creation gameobject destroy(clone, 5); yield new waitforseconds(1); } } } ensuite, retournez à l'éditeur unity, faites glisser le prefab dans l'inspecteur de script pour l'ajouter appuyez sur le bouton de lecture pour vérifier qu'un objet 3d est créé et tombe d'en haut chaque seconde cliquez sur les liens ci dessous pour en savoir plus sur les gameobjects et les composants unity offerts par zepetoscript 📘 création de gameobjects https //docs unity3d com/2020 3/documentation/scriptreference/object instantiate html https //docs unity3d com/2020 3/documentation/scriptreference/object instantiate html 📘 destruction de gameobjects https //docs unity3d com/2020 3/documentation/scriptreference/object destroy html https //docs unity3d com/2020 3/documentation/scriptreference/object destroy html 📘 utilisation des composants https //docs unity3d com/kr/current/manual/usingcomponents html https //docs unity3d com/kr/current/manual/usingcomponents html