สร้างโลกของคุณเอง
มัลติเพลย์

สถานะห้องเล่นหลายคน

7min
Document image


ห้องมัลติเพลย์ให้คุณสมบัติ State สำหรับการจัดการตำแหน่งของผู้เล่นหรือวัตถุที่เชื่อมต่ออยู่

การกำหนดข้อมูลของ State จะถูกจัดการจากไฟล์ Schema ซึ่งอยู่ภายใต้แพ็คเกจมัลติเพลย์ เหตุการณ์ onStateChange จะถูกเรียกครั้งแรกเมื่อไคลเอนต์เชื่อมต่อกับห้องได้สำเร็จ และจะถูกเรียกอีกครั้งเมื่อมีการเปลี่ยนแปลงข้อมูลสถานะ

API เซิร์ฟเวอร์

API

คำอธิบาย

state.SCHEMA_NAME

คุณสามารถเข้าถึงฟิลด์ SCHEMA_NAME ที่กำหนดในไฟล์ schema ด้วย state คุณสามารถแก้ไขค่าฟิลด์ตามคำขอจากไคลเอนต์หรือจากตรรกะเซิร์ฟเวอร์ภายใน สถานะที่เปลี่ยนแปลงจะถูกส่งต่อไปยังไคลเอนต์โดยอัตโนมัติด้วยเหตุการณ์ OnStateChange

📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [ZEPETO.Multiplay(Server) API]

TypeScript


API

คำอธิบาย

room.OnStateChange(State, isFirst)

คุณสามารถลงทะเบียน callback การเปลี่ยนแปลงสถานะเมื่อคุณเข้าร่วมห้อง คุณสามารถรับสถานะของห้องทั้งหมดเป็นครั้งแรก และจะได้รับเฉพาะสถานะที่เปลี่ยนแปลงเท่านั้นในภายหลัง.

Client API

TypeScript




กำหนดไฟล์ Schema

Schema เป็นโครงสร้างข้อมูลสำหรับการกำหนดสถานะปัจจุบันในห้อง ห้องถูกใช้เพื่อจัดการข้อมูลผู้เล่น ตำแหน่งของผู้เล่นหรือวัตถุ เป็นต้น

ในการแก้ไขสคีมา คุณสามารถเลือก Project View → MultiplayPackage Asset → schema.json และจากนั้นปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง Inspector คุณสามารถปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง Inspector ได้

ขั้นตอนที่ 1 : การกำหนดประเภทสคีมา

ประเภทสคีมาเป็นโครงสร้างข้อมูลที่ใช้ในโลก ใน Inspector → ประเภทสคีมา กดปุ่ม [+] และเพิ่มข้อมูล

4-4-3-1.gif
4-4-3-1.gif




ขั้นตอนที่ 2 : เพิ่มสถานะห้อง

สถานะห้องคือคุณสมบัติที่แสดงสถานะปัจจุบันของห้องโลก และแสดงในโครงสร้างสคีมาตามที่กำหนดไว้ข้างต้น

ในประเภทสคีมา ให้เลือกประเภทสถานะห้องที่ใช้เป็นสถานะปัจจุบันของโลกและตั้งชื่อเป็น SCHEMA_NAME

Document image


ตัวอย่าง schemas.json

JSON