สร้างโลกของคุณเอง
มัลติเพลย์
สถานะห้องเล่นหลายคน
7 นาที
ห้องมัลติเพลย์ให้คุณสมบัติ state สำหรับการจัดการตำแหน่งของผู้เล่นหรือวัตถุที่เชื่อมต่ออยู่ การกำหนดข้อมูลของ state จะถูกจัดการจากไฟล์ schema ซึ่งอยู่ภายใต้แพ็คเกจมัลติเพลย์ เหตุการณ์ onstatechange จะถูกเรียกครั้งแรกเมื่อไคลเอนต์เชื่อมต่อกับห้องได้สำเร็จ และจะถูกเรียกอีกครั้งเมื่อมีการเปลี่ยนแปลงข้อมูลสถานะ api เซิร์ฟเวอร์ api คำอธิบาย state schema name คุณสามารถเข้าถึงฟิลด์ schema name ที่กำหนดในไฟล์ schema ด้วย state คุณสามารถแก้ไขค่าฟิลด์ตามคำขอจากไคลเอนต์หรือจากตรรกะเซิร์ฟเวอร์ภายใน สถานะที่เปลี่ยนแปลงจะถูกส่งต่อไปยังไคลเอนต์โดยอัตโนมัติด้วยเหตุการณ์ onstatechange 📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ \[ zepeto multiplay(server) api https //developer zepeto me/docs/multiplay server/classes/zepeto multiplay sandbox#state ] import { location } from 'zepeto multiplay schema'; export default class extends sandbox { const location location = this state playerlocation; // การจัดการสถานะ } api คำอธิบาย room onstatechange(state, isfirst) คุณสามารถลงทะเบียน callback การเปลี่ยนแปลงสถานะเมื่อคุณเข้าร่วมห้อง คุณสามารถรับสถานะของห้องทั้งหมดเป็นครั้งแรก และจะได้รับเฉพาะสถานะที่เปลี่ยนแปลงเท่านั้นในภายหลัง client api import { zepetoscriptbehaviour } from 'zepeto script'; import { location } from 'zepeto multiplay schema'; export default class sampleclient extends zepetoscriptbehaviour { start() { this multiplay roomjoined += (room room) => { room onstatechange += this onstatechange; }; } private onstatechange(state state, isfirst boolean) { const location location = state playerlocation; // handling player location using updated state } } กำหนดไฟล์ schema schema เป็นโครงสร้างข้อมูลสำหรับการกำหนดสถานะปัจจุบันในห้อง ห้องถูกใช้เพื่อจัดการข้อมูลผู้เล่น ตำแหน่งของผู้เล่นหรือวัตถุ เป็นต้น ในการแก้ไขสคีมา คุณสามารถเลือก project view → multiplaypackage asset → schema json และจากนั้นปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง inspector คุณสามารถปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง inspector ได้ ขั้นตอนที่ 1 การกำหนดประเภทสคีมา ประเภทสคีมาเป็นโครงสร้างข้อมูลที่ใช้ในโลก ใน inspector → ประเภทสคีมา กดปุ่ม \[+] และเพิ่มข้อมูล ขั้นตอนที่ 2 เพิ่มสถานะห้อง สถานะห้องคือคุณสมบัติที่แสดงสถานะปัจจุบันของห้องโลก และแสดงในโครงสร้างสคีมาตามที่กำหนดไว้ข้างต้น ในประเภทสคีมา ให้เลือกประเภทสถานะห้องที่ใช้เป็นสถานะปัจจุบันของโลกและตั้งชื่อเป็น schema name ตัวอย่าง schemas json { "state" {"players" {"map" "player"}}, "player" {"sessionid" "string","zepetouserid" "string","transform" "transform","state" "number","substate" "number"}, "transform" {"position" "vector3","rotation" "vector3"}, "vector3" {"x" "number","y" "number","z" "number"} }