สร้างโลกของคุณเอง
การเขียนสคริปต์
ScriptableObject
5นาที
zepetoscriptableobject รองรับ unity scriptableobject zepetoscriptableobject เป็นตัวเก็บข้อมูลที่บันทึกข้อมูลจำนวนมาก เช่น การตั้งค่าข้อมูลโลกและตัวเลือกตัวละคร ในการสร้างไฟล์ zepetoscriptableobject ใหม่ ให้คลิกที่ไอคอน \[+] ที่มุมซ้ายบนของแผงโครงการ หรือคลิกที่ assets → create → zepeto → scriptableobject zepetoscriptableobject ที่สร้างขึ้นใหม่จำเป็นต้องเชื่อมต่อโดยการสร้างสคริปต์ที่มีคลาสข้อมูลที่กำหนดไว้ สร้างไฟล์ zepetoscript ใหม่ และประกาศข้อมูลที่คุณจะใช้เป็นตัวแปรสมาชิก นี่คือตัวอย่างโค้ดบางส่วนที่สามารถใช้เป็นข้อมูลได้ typescript import { vector3, quaternion } from 'unityengine'; export default class playerscriptobjectdef { public name string; public hp number; public position vector3; public rotation vector3; } เมื่อคุณเชื่อมโยง zepetoscript กับคลาสข้อมูลที่กำหนดไปยัง zepetoscriptableobjects คุณจะเห็นข้อมูลเหล่านั้นในหน้าต่าง inspector ดังที่แสดงด้านล่าง สร้างไฟล์ zepetoscript เพื่อเรียกข้อมูลจาก zepetoscriptableobject นำเข้า zepetoscriptableobject จาก zepetoscript และนำเข้าประเภทข้อมูลที่คุณได้ประกาศไว้ด้วย typescript import { zepetoscriptableobject } from 'zepeto script'; import playerscriptobjectdef from ' /playerdefine/playerscriptobjectdef'; ประกาศ zepetoscriptableobject เป็นคุณสมบัติใน zepetoscript typescript public player zepetoscriptableobject\<playerscriptobjectdef>; public enemy zepetoscriptableobject\<playerscriptobjectdef>; เปิดหน้าต่าง inspector ใน zepetoscript เพื่อกำหนดค่าให้กับคุณสมบัติของ zepetoscriptableobject ตามที่แสดงด้านล่าง ตัวอย่างนี้แสดงให้เห็นว่าคุณสามารถใช้ zepetoscriptableobject และเข้าถึงค่าของมันได้อย่างไร typescript // การเข้าถึงโดยตรงตามชื่อ console log(`ชื่อผู้เล่น ${this player\["name"]}`); console log(`พลังชีวิตผู้เล่น ${this player\["hp"]}`); console log(`ตำแหน่งผู้เล่น (${this player\["position"] x}, ${this player\["position"] y}, ${this player\["position"] z})`); console log(`การหมุนของผู้เล่น (${this player\["rotation"] x}, ${this player\["rotation"] y}, ${this player\["rotation"] z})`); // การเรียกข้อมูลทั่วไป let monsterstate = this enemy targetobject; console log(`ชื่อศัตรู ${monsterstate name}`); console log(`พลังชีวิตศัตรู ${monsterstate hp}`); console log(`ตำแหน่งศัตรู (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); console log(`การหมุนของศัตรู (${monsterstate rotation x}, ${monsterstate rotation y}, ${monsterstate rotation z})`); ในการเข้าถึงตัวแปรประเภทพื้นฐาน ให้ประกาศเป็นประเภททั่วไปหรือแปลงโดยใช้การแคสต์ประเภท เช่น ตัวอย่างที่แสดงด้านล่างนี้ typescript // การแคสต์ประเภท let playerposition = this player\["position"] as vector3; console log(`ตำแหน่งผู้เล่น (x ${playerposition x}, y ${playerposition y}, z ${playerposition z})`); // ประเภททั่วไปสามารถเข้าถึงสมาชิกของคลาส console log(`ตำแหน่งศัตรู (x ${monsterstate position x}, y ${monsterstate position y}, z ${monsterstate position z})`); ตรวจสอบตัวอย่างโค้ดทั้งหมดสำหรับ scriptableobject typescript import { vector3 } from 'unityengine'; import { zepetoscriptbehaviour, zepetoscriptableobject } from 'zepeto script'; // นำเข้าคำนิยามประเภท scriptable object import playerscriptobjectdef from ' /playerdefine/playerscriptobjectdef'; export default class scriptableobjectsample extends zepetoscriptbehaviour { public player zepetoscriptableobject; // การเรียกใช้ประเภททั่วไป public enemy zepetoscriptableobject\<playerscriptobjectdef>; awake() { // การเข้าถึงโดยตรงตามชื่อ console log(`ชื่อผู้เล่น ${this player\["name"]}`); console log(`พลังชีวิตผู้เล่น ${this player\["hp"]}`); console log(`ตำแหน่งผู้เล่น (${this player\["position"] x}, ${this player\["position"] y}, ${this player\["position"] z})`); console log(`การหมุนของผู้เล่น (${this player\["rotation"] x}, ${this player\["rotation"] y}, ${this player\["rotation"] z})`); // การเรียกใช้ข้อมูลทั่วไป let monsterstate = this enemy targetobject; console log(`ชื่อศัตรู ${monsterstate name}`); console log(`พลังชีวิตศัตรู ${monsterstate hp}`); console log(`ตำแหน่งศัตรู (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); console log(`การหมุนของศัตรู (${monsterstate rotation x}, ${monsterstate rotation y}, ${monsterstate rotation z})`); // การแปลงประเภท let playerposition = this player\["position"] as vector3; console log(`ตำแหน่งผู้เล่น (${playerposition x}, ${playerposition y}, ${playerposition z})`); // ประเภททั่วไปสามารถเข้าถึงสมาชิกของคลาส console log(`ตำแหน่งศัตรู (${monsterstate position x}, ${monsterstate position y}, ${monsterstate position z})`); } }