สร้างเกม - server/client and RPC (Unity3D Thailand)

          สอน Unity3D server และ client แถม RPC ให้นิดๆหน่อยๆ - บทความนี้เกี่ยวกับเรื่องของ server และ client ครับ จะมาบอกวิธีการสร้างเกม server แล้วจะให้ client เชื่อมต่อไปยัง server ยังไงนะครับ สำหรับ Unity แล้วก็ดูฟังชั่นที่ใช้งานร่วมกันบ่อยๆนั้นมีอะไรบ้างนะครับ
          ส่วนเรื่อง RPC ก็เป็นตัวอย่างนิดเดียวเท่านั้นนะครับ เดี๋ยวบทความต่อไปจะขยายความเรื่องของ RPC ให้มากกว่านี้ครับ ก็เดี๋ยวไปชมวิดีโอกันก่อนเลยครับ


ถ้าวิดีโอไม่ขึ้นครับ http://youtu.be/HrT83EXNMAY



          โค้ดตัวอย่างของ server ครับ ก็มีคำสั่ง Network.InitializeServer(); ที่เป็นคำสั่ง start server นั้นเองครับ แล้วก็มีฟังชั่นที่ใช้งานบ่อยๆอย่าง

  • OnserverIntialized() ที่ตรวจสอบว่า server ทำงานแล้ว
  • OnPlayerConnected() ที่ตรวจสอบว่ามีการเชื่อมต่อเข้ามาแล้ว
  • OnPlayerDisConnected() ก็ตรงตัวครับ คือยกเลิกการเชื่อต่อแล้ว

           ก็จะทำอะไรภายในฟังชั่นนี้ๆก็แล้วแต่เราเลยครับ อย่างในตัวอย่างผมก็ Debug.log แสดงผลตามที่ผมต้องการครับ



         ตัวอย่างโค้ด client ก็ไม่มีไรมากครับ คำสั่ง Network.Connect() ก็คือสั่งให้เชื่อมต่อไปยัง server ที่เราต้องการนั้นเอง โดยกำหนด ip และ port ที่ตามที่เครื่อง server ตั้งไว้ครับ


แล้วก็ Component ที่จำเป็นของเรื่องนี้ก็คือ Network View ครับ ตามรูปด้านล่างเลย


          RPC โหมด  -บทความนี้ จะมาดูเรื่องของการใช้ RPC ในโหมดต่างว่ามีอะไรกันบ้างนะครับ สำหรับบทความนี้ไม่ขอทำคลิปแล้วกันครับ ก็ให้เพื่อนๆไปลองกันเอาเอง เพราะแค่ลองใช้คำสั่งอื่นๆคงไม่ยาก เรามาดูตัวอย่างกันเลยดีกว่าครับ

          คำสั่งที่เอาไว้เรียกใช้ RPC ครับ

  • networkView.RPC("myRPC"RPCMode.All, "string1""string2");

          คือคำสั่ง networkView.RPC นั้นเองครับ ส่วนค่าข้างในมีอะไรบ้าง

  •  อันแรกเป็นชื่อฟังชั่นที่เป็น RPC ของเรานั้นเองครับ ของผมเป็น myRPC ตามกรอบด้านล่างที่สร้างไว้
  • อันสองเป็นโหมดครับ มีโหมดอะไรบ้างมาดูกัน
  • RPCMode.All                     = ทำกับทังหมด 
  • RPCMode.AllBuffered       = ทำกับทั้งหมด รวมทั้งที่มาทีหลังด้วย ( ตัวอย่างเช่น ถ้าฟังชั่นนั้นเป็นฟังชั่นนับเวลา ก็จะเห็นเวลาเท่ากับของอันที่นับไปก่อนแล้ว )
  • RPCMode.Others                = ทำกับทั้งหมด ยกเว้นตัวเอง
  • RPCMode.OthersBuffered  = ทำกับทั้งหมด ยกเว้นตัวเอง รวมทั้งที่มาทีหลังด้วย (คล้ายๆ AllBuffered )
  • RPCMode.Server                = ทำเฉพาะกับ Server 
  •  อันสุดท้ายก็เป็น parameter มีกี่ค่าก็ใช้เครื่องหมาย "," คั่นไปเรื่อยครับ


_____________________________________
[RPC]
    void myRPC(string s1, string s2)
    {
        Debug.Log(s1 + ":" + s2);
    }
_____________________________________


สำหรับบทความนี้ก็สั้นๆง่ายๆครับขอบคุณที่ตามอ่านกันครับ






สามารถอ่านบทความที่เกี่ยวข้องของเราที่นี่  >> รวมลิ้งค์บทความ สร้างเกมด้วย Unity

ไม่มีความคิดเห็น

ขับเคลื่อนโดย Blogger.