เช็คการเชื่อมต่อของเกมด้วย Application.internetReachability

lan_connect2

สวัสดีครับ กลับมาพบกับเทคนิคดีๆด้วย Unity เช่นเคยนะครับ วันนี้ผมมีฟังชั่นก์ที่น่าสนใจมาฝากเพื่อนๆเช่นเคยครับ วันนี้เราจะมาตรวจสอบการเชื่อมต่อ Network ของเกมเรากันครับ นั่นก็คือฟังชั่นก์ Application.internetReachability ครับ

เพื่อนๆที่ทำเกมออนไลน์บนมือถือ ที่ต้องใช้การเช็ครูปแบบการเชื่อมต่อว่าตอนนั้นเกมของเรากำลังเชื่อมต่อเครือข่ายแบบไหนอยู่ ติดต่อ 4G หรือ wifi  เราสามารถใช้ฟังชั่นก์  Application.internetReachability เพื่อตรวจสอบการเชื่อมต่อของเราได้ครับ การใช้ก็ไม่ยาก เราสามารถเขียนฟังชั่นก์นี้ที่ไหนก็ได้ที่เราต้องการตรวจสอบ มาดูตัวอย่างกันครับ

01

ตากภาพตัวอย่างผมสร้างสคริป CheckConnectScript แล้วแปะไว้ใน Main camera เลย เพื่อให้ง่ายต่อการทำงานครับ

มาดูภายในสคริปกันครับ

02

 

โดยผมใส่สคริปไว้ในฟังชั่นก์ Start เพื่อรันสคริปทันทีที่เปิดเกมมาครับ

        Debug.Log(Application.internetReachability);

if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)

{

//Do something;

}

else if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)

{

//Do something;

}

else if (Application.internetReachability == NetworkReachability.NotReachable)

{

//Do something;

}

 

จากโค้ดตัวอย่าง ผมได้เตรียมเงื่อนไขทั้งสามแบบไว้แล้ว นั่นก็คือ ไม่มีการต่อเครือข่าย ต่อเครือข่ายผ่านแลน และต่อเครือข่ายผ่าน 4G ครับ ซึ่งถ้าเราเชื่อมต่ออินเตอเนตแล้วรันโปรแกรมนี้ผ่านทาง Editor ก็จะเข้าเงื่อนไขการเชื่อมต่อผ่านทาง Lan ครับ

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

 

เป็นไงบ้างครับกับเทคนิคที่ผมนำมาเสนอในวันนี้ เราสามารถนำไปประยุกต์ใช้เวลาที่ผู้เล่นของเราต่อ 4G ก็อาจจะมีการแจ้งเตือนการใช้อินเตอเนตเป็นต้นนะครับ แล้วพบกันใหมในทิปต่อไปครับ