สถานะห้องเล่นหลายคน
ห้องมัลติเพลย์ให้คุณสมบัติ State สำหรับการจัดการตำแหน่งของผู้เล่นหรือวัตถุที่เชื่อมต่ออยู่
การกำหนดข้อมูลของ State จะถูกจัดการจากไฟล์ Schema ซึ่งอยู่ภายใต้แพ็คเกจมัลติเพลย์ เหตุการณ์ onStateChange จะถูกเรียกครั้งแรกเมื่อไคลเอนต์เชื่อมต่อกับห้องได้สำเร็จ และจะถูกเรียกอีกครั้งเมื่อมีการเปลี่ยนแปลงข้อมูลสถานะ
API | คำอธิบาย |
---|---|
state.SCHEMA_NAME | คุณสามารถเข้าถึงฟิลด์ SCHEMA_NAME ที่กำหนดในไฟล์ schema ด้วย state คุณสามารถแก้ไขค่าฟิลด์ตามคำขอจากไคลเอนต์หรือจากตรรกะเซิร์ฟเวอร์ภายใน สถานะที่เปลี่ยนแปลงจะถูกส่งต่อไปยังไคลเอนต์โดยอัตโนมัติด้วยเหตุการณ์ OnStateChange |
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [ZEPETO.Multiplay(Server) API]
API | คำอธิบาย |
---|---|
room.OnStateChange(State, isFirst) | คุณสามารถลงทะเบียน callback การเปลี่ยนแปลงสถานะเมื่อคุณเข้าร่วมห้อง คุณสามารถรับสถานะของห้องทั้งหมดเป็นครั้งแรก และจะได้รับเฉพาะสถานะที่เปลี่ยนแปลงเท่านั้นในภายหลัง. |
Schema เป็นโครงสร้างข้อมูลสำหรับการกำหนดสถานะปัจจุบันในห้อง ห้องถูกใช้เพื่อจัดการข้อมูลผู้เล่น ตำแหน่งของผู้เล่นหรือวัตถุ เป็นต้น
ในการแก้ไขสคีมา คุณสามารถเลือก Project View → MultiplayPackage Asset → schema.json และจากนั้นปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง Inspector คุณสามารถปรับเปลี่ยนประเภทข้อมูลที่ใช้สำหรับโลกในหน้าต่าง Inspector ได้
ประเภทสคีมาเป็นโครงสร้างข้อมูลที่ใช้ในโลก ใน Inspector → ประเภทสคีมา กดปุ่ม [+] และเพิ่มข้อมูล
สถานะห้องคือคุณสมบัติที่แสดงสถานะปัจจุบันของห้องโลก และแสดงในโครงสร้างสคีมาตามที่กำหนดไว้ข้างต้น
ในประเภทสคีมา ให้เลือกประเภทสถานะห้องที่ใช้เป็นสถานะปัจจุบันของโลกและตั้งชื่อเป็น SCHEMA_NAME