CRÉEZ VOTRE MONDE
Scriptage

ScriptableObject

5min
zepetoscriptableobject prend en charge unity scriptableobject zepetoscriptableobject est un conteneur de données qui sauvegarde de grandes quantités de données, telles que les paramètres de données du monde et les options de personnage pour créer un nouveau fichier zepetoscriptableobject, cliquez sur l'icône \[+] dans le coin supérieur gauche du panneau projet, ou cliquez sur assets → créer → zepeto → scriptableobject le zepetoscriptableobject nouvellement créé doit être connecté en créant des scripts avec une classe de données définie créez un nouveau fichier zepetoscript et déclarez les données que vous utiliserez comme variables membres voici quelques exemples de codes qui peuvent être utilisés comme données typescript import { vector3, quaternion } from 'unityengine'; export default class playerscriptobjectdef { public name string; public hp number; public position vector3; public rotation vector3; } lorsque vous liez le zepetoscript avec la classe de données définie aux zepetoscriptableobjects, vous verrez ces données dans la fenêtre inspector, comme montré ci dessous créez un fichier zepetoscript pour appeler des données à partir du zepetoscriptableobject importez le zepetoscriptableobject depuis le zepetoscript et importez également le type de données que vous avez déclaré typescript import { zepetoscriptableobject } from 'zepeto script'; import playerscriptobjectdef from ' /playerdefine/playerscriptobjectdef'; déclarez les zepetoscriptableobject comme propriétés dans le zepetoscript typescript public player zepetoscriptableobject\<playerscriptobjectdef>; public enemy zepetoscriptableobject\<playerscriptobjectdef>; ouvrez la fenêtre inspecteur dans zepetoscript pour attribuer des valeurs aux propriétés zepetoscriptableobject, comme indiqué ci dessous cet exemple montre comment vous pouvez utiliser le zepetoscriptableobject et accéder à ses valeurs typescript // accès direct par nom console log(`nom du joueur ${this player\["name"]}`); console log(`hp du joueur ${this player\["hp"]}`); console log(`position du joueur (${this player\["position"] x}, ${this player\["position"] y}, ${this player\["position"] z})`); console log(`rotation du joueur (${this player\["rotation"] x}, ${this player\["rotation"] y}, ${this player\["rotation"] z})`); // appel de données génériques let monsterstate = this enemy targetobject; console log(`nom de l'ennemi ${monsterstate name}`); console log(`hp de l'ennemi ${monsterstate hp}`); console log(`position de l'ennemi (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); console log(`rotation de l'ennemi (${monsterstate rotation x}, ${monsterstate rotation y}, ${monsterstate rotation z})`); pour accéder à un type primitif de variable membre, déclarez le comme un type générique ou convertissez le en utilisant le casting de type, comme dans l'exemple ci dessous typescript // casting de type let playerposition = this player\["position"] as vector3; console log(`position du joueur (x ${playerposition x}, y ${playerposition y}, z ${playerposition z})`); // le type générique peut accéder aux membres de la classe console log(`position de l'ennemi (x ${monsterstate position x}, y ${monsterstate position y}, z ${monsterstate position z})`); vérifiez l'exemple de code complet pour scriptableobject typescript import { vector3 } from 'unityengine'; import { zepetoscriptbehaviour, zepetoscriptableobject } from 'zepeto script'; // importer la définition du type d'objet scriptable import playerscriptobjectdef from ' /playerdefine/playerscriptobjectdef'; export default class scriptableobjectsample extends zepetoscriptbehaviour { public player zepetoscriptableobject; // appel de type générique public enemy zepetoscriptableobject\<playerscriptobjectdef>; awake() { // accès direct par nom console log(`nom du joueur ${this player\["name"]}`); console log(`hp du joueur ${this player\["hp"]}`); console log(`position du joueur (${this player\["position"] x}, ${this player\["position"] y}, ${this player\["position"] z})`); console log(`rotation du joueur (${this player\["rotation"] x}, ${this player\["rotation"] y}, ${this player\["rotation"] z})`); // appel de données génériques let monsterstate = this enemy targetobject; console log(`nom de l'ennemi ${monsterstate name}`); console log(`hp de l'ennemi ${monsterstate hp}`); console log(`position de l'ennemi (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); console log(`rotation de l'ennemi (${monsterstate rotation x}, ${monsterstate rotation y}, ${monsterstate rotation z})`); // conversion de type let playerposition = this player\["position"] as vector3; console log(`position du joueur (${playerposition x}, ${playerposition y}, ${playerposition z})`); // le type générique peut accéder aux membres de la classe console log(`position de l'ennemi (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); } }