มัลติเพลย์
ZEPETO Multiplay เป็นโมดูลที่อนุญาตให้ผู้ใช้หลายคนเชื่อมต่อและเล่นโลกพร้อมกันได้
มันให้การพัฒนาเซิร์ฟเวอร์/ไคลเอนต์และสภาพแวดล้อมการทดสอบในท้องถิ่น
📘 ตัวอย่างโลก Multiplay อย่างเป็นทางการ
เลือก ZEPETO → เซิร์ฟเวอร์ Multiplay ในเมนู [+] ที่มุมซ้ายบนของแผง [Project] หรือไปที่ Assets → สร้าง → ZEPETO → เซิร์ฟเวอร์ Multiplay
แพ็คเกจ World.multiplay ประกอบด้วยรายการต่อไปนี้ และจะได้รับการอัปเดตโดยอัตโนมัติเมื่อโลกถูกเผยแพร่
- index.ts: รหัสหลักของเซิร์ฟเวอร์
- schemas: โครงสร้างข้อมูลสำหรับการสื่อสารระหว่างเซิร์ฟเวอร์/ไคลเอนต์
❗️ ระวัง
สามารถสร้างแพ็คเกจ World.multiplay ได้เพียงหนึ่งแพ็คเกจต่อเกมเท่านั้น
คลิกที่ [เปิดการตั้งค่าโลก] ตามที่แสดงในภาพด้านล่างเพื่อกำหนดการตั้งค่าโลก
ทรัพย์สิน | คำอธิบาย |
---|---|
เวอร์ชัน | กรอกเวอร์ชันของไฟล์ของคุณที่จะลงทะเบียน. |
MaxClients | ตั้งค่าจำนวนสูงสุดของผู้ที่สามารถเข้าถึงห้องได้. |
การจัดแนว | เลือกการจัดแนวของหน้าจอ. |
ปิดการเชิญ | ปิดฟังก์ชันการเชิญห้อง. |
ปิดรายการห้อง | ปิดความสามารถในการตรวจสอบรายการห้อง. |
ปิดห้องส่วนตัว | ปิดความสามารถในการสร้างห้องส่วนตัว. |
👍 ปิดการเชิญ
แม้ว่าฟังก์ชันการเชิญห้องจะปิดอยู่ คุณยังสามารถส่งคำเชิญผ่านลิงก์ทดสอบได้.
ZEPETO Multiplay ให้สภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่นที่ผู้สร้างสามารถทดสอบเซิร์ฟเวอร์/ไคลเอนต์ระหว่างการพัฒนาได้
เพื่อตรวจสอบการทำงานของเซิร์ฟเวอร์ท้องถิ่น ให้เลือกเมนูด้านบนของ Unity → Window → ZEPETO → Multiplay Server เพื่อเปิดหน้าต่างสถานะเซิร์ฟเวอร์.
คลิกปุ่มเซิร์ฟเวอร์ถัดจากปุ่ม [▶︎(เล่น)] ที่อยู่กลางหน้าจอของโปรแกรมแก้ไข.
คุณจะเห็นบันทึกเซิร์ฟเวอร์ต่อไปนี้ที่แผงสถานะเซิร์ฟเวอร์
ส่วนประกอบ ZepetoWorldMultiplay เป็นคลาสผู้จัดการ Multiplay ที่ใช้ในฝั่งลูกค้า
สร้าง GameObject ในหน้าต่าง Hierachy และเพิ่มส่วนประกอบ ZepetoWorldMultiplay ส่วนประกอบ ZepetoWorldMultiplay จะเชื่อมต่อกับแพ็คเกจ Multiplay โดยอัตโนมัติ
คลิกที่ปุ่ม [▶︎(เล่น)] ที่กลางหน้าจอ Editor เพื่อดูบันทึกการเชื่อมต่อของลูกค้าในหน้าต่าง Server Log.
เซิร์ฟเวอร์พัฒนาทำงานบน localhost(127.0.0.1) และพอร์ตจะถูกตั้งค่าเมื่อโปรเจกต์ถูกโหลดครั้งแรก.
เมื่อเชื่อมต่อผ่านหลายโปรเจกต์ ให้ตั้งค่าสภาพแวดล้อมการเชื่อมต่อเป็นดังนี้
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ กำลังเข้าถึงที่อยู่ IP หลายรายการ
👍 หลังจากที่โลกถูกแจกจ่าย มันจะทำงานบนเซิร์ฟเวอร์ ZEPETO.
การนำตรรกะเซิร์ฟเวอร์ไปใช้
ไฟล์ index.ts ในแพ็คเกจ World.multiplay เป็นโค้ดที่รับผิดชอบตรรกะหลักของเซิร์ฟเวอร์
เปิดไฟล์ index.ts และเพิ่มตรรกะที่ส่งไปยังไคลเอนต์หลังจากได้รับประเภทข้อความ echo ในเหตุการณ์ onCreate()
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [Zepeto.Multiplay(Server) API]
การดำเนินการตรรกะของลูกค้า
สร้างและเพิ่มสคริปต์ ZEPETO ใน GameObject ZepetoWorldMultiplay ที่ใช้ในการส่ง/รับเหตุการณ์จากเซิร์ฟเวอร์ดังนี้:
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ ข้อความในห้องเล่นหลายคน
คลิกที่ [▶︎(เล่น)] ที่กลางหน้าจอ Editor เพื่อเรียกใช้เซิร์ฟเวอร์/ลูกค้า คุณควรเห็นตัวอย่างข้อความประเภท 'echo' ดังที่แสดงด้านล่าง:
① บันทึกของผลลัพธ์เมื่อข้อความจากลูกค้าถูกส่งไปยังเซิร์ฟเวอร์
② บันทึกของข้อความที่ได้รับจากเซิร์ฟเวอร์จากลูกค้า
❗️ ระวัง
[การใช้ตัวแปรภายในโค้ดเซิร์ฟเวอร์]
- สามารถประกาศตัวแปรในโค้ดเซิร์ฟเวอร์ได้เช่นกัน
- อย่างไรก็ตาม หน่วยความจำแคชที่มีอยู่ในเซิร์ฟเวอร์ในขณะนี้จำกัดอยู่ที่ 512KB (อาจมีการเปลี่ยนแปลงในภายหลัง)
- หากเกิน 512KB ห้องอาจถูกซ่อน ดังนั้นโปรดพัฒนาตามนี้
[การใช้ลูปภายในโค้ดเซิร์ฟเวอร์]
- เวลาลูปถูกตั้งไว้ที่ 2 วินาที (2000ms) ในโค้ดเซิร์ฟเวอร์
- โปรดพิจารณานี้เมื่อพัฒนา เนื่องจากการใช้โค้ดที่บล็อกหรือการลูปที่ใช้เวลานานอาจทำให้โปรแกรมไม่สามารถทำงานได้อย่างถูกต้องเนื่องจากเวลาลูปที่กำหนด