สร้างโลกของคุณเอง

มัลติเพลย์

13min

ZEPETO Multiplay เป็นโมดูลที่อนุญาตให้ผู้ใช้หลายคนเชื่อมต่อและเล่นโลกพร้อมกันได้

มันให้การพัฒนาเซิร์ฟเวอร์/ไคลเอนต์และสภาพแวดล้อมการทดสอบในท้องถิ่น

📘 ตัวอย่างโลก Multiplay อย่างเป็นทางการ

ขั้นตอนที่ 1 : ติดตั้ง

เลือก ZEPETO → เซิร์ฟเวอร์ Multiplay ในเมนู [+] ที่มุมซ้ายบนของแผง [Project] หรือไปที่ Assets → สร้าง → ZEPETO → เซิร์ฟเวอร์ Multiplay

Document image


แพ็คเกจ World.multiplay ประกอบด้วยรายการต่อไปนี้ และจะได้รับการอัปเดตโดยอัตโนมัติเมื่อโลกถูกเผยแพร่

  • index.ts: รหัสหลักของเซิร์ฟเวอร์
  • schemas: โครงสร้างข้อมูลสำหรับการสื่อสารระหว่างเซิร์ฟเวอร์/ไคลเอนต์
Document image


❗️ ระวัง

สามารถสร้างแพ็คเกจ World.multiplay ได้เพียงหนึ่งแพ็คเกจต่อเกมเท่านั้น

ขั้นตอนที่ 2 : การตั้งค่า

คลิกที่ [เปิดการตั้งค่าโลก] ตามที่แสดงในภาพด้านล่างเพื่อกำหนดการตั้งค่าโลก

Document image

Document image


ทรัพย์สิน

คำอธิบาย

เวอร์ชัน

กรอกเวอร์ชันของไฟล์ของคุณที่จะลงทะเบียน.

MaxClients

ตั้งค่าจำนวนสูงสุดของผู้ที่สามารถเข้าถึงห้องได้.

การจัดแนว

เลือกการจัดแนวของหน้าจอ.

ปิดการเชิญ

ปิดฟังก์ชันการเชิญห้อง.

ปิดรายการห้อง

ปิดความสามารถในการตรวจสอบรายการห้อง.

ปิดห้องส่วนตัว

ปิดความสามารถในการสร้างห้องส่วนตัว.

👍 ปิดการเชิญ

แม้ว่าฟังก์ชันการเชิญห้องจะปิดอยู่ คุณยังสามารถส่งคำเชิญผ่านลิงก์ทดสอบได้.

ขั้นตอนที่ 3 : การรันเซิร์ฟเวอร์ทดสอบ

ZEPETO Multiplay ให้สภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่นที่ผู้สร้างสามารถทดสอบเซิร์ฟเวอร์/ไคลเอนต์ระหว่างการพัฒนาได้

เพื่อตรวจสอบการทำงานของเซิร์ฟเวอร์ท้องถิ่น ให้เลือกเมนูด้านบนของ Unity → Window → ZEPETO → Multiplay Server เพื่อเปิดหน้าต่างสถานะเซิร์ฟเวอร์.

Document image


คลิกปุ่มเซิร์ฟเวอร์ถัดจากปุ่ม [▶︎(เล่น)] ที่อยู่กลางหน้าจอของโปรแกรมแก้ไข.

คุณจะเห็นบันทึกเซิร์ฟเวอร์ต่อไปนี้ที่แผงสถานะเซิร์ฟเวอร์

Document image


ขั้นตอนที่ 4 : เชื่อมต่อกับลูกค้า (เชื่อมต่อกับเซิร์ฟเวอร์ท้องถิ่น)

ส่วนประกอบ ZepetoWorldMultiplay เป็นคลาสผู้จัดการ Multiplay ที่ใช้ในฝั่งลูกค้า

สร้าง GameObject ในหน้าต่าง Hierachy และเพิ่มส่วนประกอบ ZepetoWorldMultiplay ส่วนประกอบ ZepetoWorldMultiplay จะเชื่อมต่อกับแพ็คเกจ Multiplay โดยอัตโนมัติ

Document image


คลิกที่ปุ่ม [▶︎(เล่น)] ที่กลางหน้าจอ Editor เพื่อดูบันทึกการเชื่อมต่อของลูกค้าในหน้าต่าง Server Log.

Document image


เซิร์ฟเวอร์พัฒนาทำงานบน localhost(127.0.0.1) และพอร์ตจะถูกตั้งค่าเมื่อโปรเจกต์ถูกโหลดครั้งแรก.

เมื่อเชื่อมต่อผ่านหลายโปรเจกต์ ให้ตั้งค่าสภาพแวดล้อมการเชื่อมต่อเป็นดังนี้

📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ กำลังเข้าถึงที่อยู่ IP หลายรายการ

👍 หลังจากที่โลกถูกแจกจ่าย มันจะทำงานบนเซิร์ฟเวอร์ ZEPETO.

Document image


ขั้นตอนที่ 5 : ตัวอย่างการสื่อสารระหว่างเซิร์ฟเวอร์ / ไคลเอนต์

การนำตรรกะเซิร์ฟเวอร์ไปใช้

ไฟล์ index.ts ในแพ็คเกจ World.multiplay เป็นโค้ดที่รับผิดชอบตรรกะหลักของเซิร์ฟเวอร์

เปิดไฟล์ index.ts และเพิ่มตรรกะที่ส่งไปยังไคลเอนต์หลังจากได้รับประเภทข้อความ echo ในเหตุการณ์ onCreate()

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

JS


การดำเนินการตรรกะของลูกค้า

สร้างและเพิ่มสคริปต์ ZEPETO ใน GameObject ZepetoWorldMultiplay ที่ใช้ในการส่ง/รับเหตุการณ์จากเซิร์ฟเวอร์ดังนี้:

Document image

MultiplaySample.ts


📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ ข้อความในห้องเล่นหลายคน

ขั้นตอนที่ 6 : ทดสอบผลลัพธ์การส่งออก

คลิกที่ [▶︎(เล่น)] ที่กลางหน้าจอ Editor เพื่อเรียกใช้เซิร์ฟเวอร์/ลูกค้า คุณควรเห็นตัวอย่างข้อความประเภท 'echo' ดังที่แสดงด้านล่าง:

Document image


① บันทึกของผลลัพธ์เมื่อข้อความจากลูกค้าถูกส่งไปยังเซิร์ฟเวอร์

② บันทึกของข้อความที่ได้รับจากเซิร์ฟเวอร์จากลูกค้า

ข้อควรระวังเมื่อใช้โค้ดเซิร์ฟเวอร์

❗️ ระวัง

[การใช้ตัวแปรภายในโค้ดเซิร์ฟเวอร์]

  • สามารถประกาศตัวแปรในโค้ดเซิร์ฟเวอร์ได้เช่นกัน
  • อย่างไรก็ตาม หน่วยความจำแคชที่มีอยู่ในเซิร์ฟเวอร์ในขณะนี้จำกัดอยู่ที่ 512KB (อาจมีการเปลี่ยนแปลงในภายหลัง)
  • หากเกิน 512KB ห้องอาจถูกซ่อน ดังนั้นโปรดพัฒนาตามนี้

[การใช้ลูปภายในโค้ดเซิร์ฟเวอร์]

  • เวลาลูปถูกตั้งไว้ที่ 2 วินาที (2000ms) ในโค้ดเซิร์ฟเวอร์
  • โปรดพิจารณานี้เมื่อพัฒนา เนื่องจากการใช้โค้ดที่บล็อกหรือการลูปที่ใช้เวลานานอาจทำให้โปรแกรมไม่สามารถทำงานได้อย่างถูกต้องเนื่องจากเวลาลูปที่กำหนด