Network Technology ၏ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူ Real-Time Battle Games သည်ကစားသမားများအကြားပိုမိုလူကြိုက်များလာသည်။ အနိမ့်အနေဖြင့်အလိုအ 0 င်နှင့်အ 0 တ်အထွတ်အထိပ်နှင့်မြင့်မားသောတစ်ပြိုင်နက်တည်း PHP ၏အချိန်နှင့်တပြေးညီဆက်သွယ်ခြင်းလိုအပ်ချက်များရရှိရန်အတွက် Unity3D နှင့် Workermanerman မှ formermanerman forameworks များကိုပေါင်းစပ်နိုင်သည့်အချိန်နှင့်အပြိုင်အဆိုင်ယှဉ်ပြိုင်နိုင်သည့်တိုက်ဆိုင်မှုစစ်တိုက်စနစ်တစ်ခုတည်ဆောက်ရန်ပေါင်းစပ်နိုင်သည်။ ဤဆောင်းပါးသည်ဆာဗာတည်ဆောက်ခြင်းမှ client ဆက်သွယ်ရေးအကောင်အထည်ဖော်မှုသို့လုပ်ငန်းစဉ်တစ်ခုလုံးကိုဖြည့်စွက်ရန်အဆင့်ဆင့်ကိုအဆင့်ဆင့်သွားပါလိမ့်မည်။
Workerman သည် PHP တွင်ရေးထားသောစွမ်းဆောင်ရည်မြင့်မားသောပြတ်တောင်းပြတ်တောင်းဆက်သွယ်ရေးမူဘောင်ဖြစ်သည်။ Multi-process processing processing ကိုထောက်ပံ့သည်။ 0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာများအကြားအချိန်နှင့်တပြေးညီဒေတာဖလှယ်မှုကိုနားလည်သဘောပေါက်ရန်ဆာဗာဘေးတွင် webermaner ကို server service ပေါ်တွင် Workerman ကိုအသုံးပြုမည်။
ပထမခြေလှမ်းမှာ workerman ကို install လုပ်ရန်နှင့် 0 န်ဆောင်မှုပတ်ဝန်းကျင်ကိုစတင်ရန်ဖြစ်သည်။
composer create-project workerman/workerman my_game_server
cd my_game_server
server.php ဟုခေါ်သော 0 န်ဆောင်မှုဖိုင်တစ်ခုကိုဖန်တီးပါ။
<?php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8000');
$worker->count = 1;
$worker->onConnect = function($connection) {
// ဆက်သွယ်မှုအသစ်ဖြစ်စဉ်
};
$worker->onMessage = function($connection, $data) {
// client ကိုမှပေးပို့သောလုပ်ငန်းစဉ်များ
};
$worker->onClose = function($connection) {
// ဆက်သွယ်မှုပိတ်ခြင်းကိုကိုင်တွယ်ပါ
};
Worker::runAll();
ဤကုဒ်သည် 8000 ၏နားထောင်ခြင်းဆိပ်ကမ်းနှင့်အတူ websocket ဝန်ဆောင်မှုကိုစတင်သည်။ သင်ဆိပ်ကမ်းနံပါတ်ကိုချိန်ညှိခြင်းသို့မဟုတ်လိုအပ်သလို logical procession code ကိုထည့်နိုင်သည်။
စည်းလုံးညီညွတ်ရေးစီမံကိန်းတွင် client connection processing အတွက် websockars plug-in ကိုသုံးနိုင်သည်။ GamEClient.cs ကဲ့သို့သော script တစ်ခုဖန်တီးပါ, အောက်ပါကုဒ်ကိုထည့်ပါ။
using UnityEngine;
using WebSocketSharp;
public class GameClient : MonoBehaviour
{
private WebSocket webSocket;
void Start()
{
webSocket = new WebSocket("ws://your_server_ip:8000");
webSocket.OnOpen += OnOpen;
webSocket.OnMessage += OnMessage;
webSocket.OnClose += OnClose;
webSocket.Connect();
}
private void OnOpen(object sender, System.EventArgs e)
{
// ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ထောင်ခဲ့သည်
}
private void OnMessage(object sender, MessageEventArgs e)
{
// ဆာဗာမက်ဆေ့ခ်ျကိုလက်ခံရရှိခဲ့သည်
}
private void OnClose(object sender, CloseEventArgs e)
{
// ဆက်သွယ်မှုပိတ်
}
void Update()
{
// ဂိမ်းယုတ္တိဗေဒ update ကို
}
}
ဤနည်းအားဖြင့် 0 န်ဆောင်မှုခံယူသူသည် PHP server နှင့်ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ဆောက်နိုင်ပြီးအချက်အလက်များကိုအချိန်မှန်တွင်ရရှိသည်။
ဂိမ်းဆာဗာသည် connection တစ်ခုစီအတွက်ထူးခြားသောအမှတ်အသားတစ်ခုသတ်မှတ်ပြီးစာတိုပေးပို့ရေးမှတစ်ဆင့်ဂိမ်းပြည်နယ်ကိုဆက်လက်ထိန်းသိမ်းထားနိုင်သည်။ ဥပမာအားဖြင့်, ကစားသမားတိုက်ပွဲတစ်ခုတွင်ဆာဗာသည်ကစားသမားနှစ် ဦး ၏စစ်ဆင်ရေးရလဒ်များကို အခြေခံ. အနိုင်ရခြင်းသို့မဟုတ်ရှုံးနိမ့်မှုကိုတရားစီရင်သည်။
တိကျသောဂိမ်းစစ်ဆင်ရေးညွှန်ကြားချက်များကိုဖော်ထုတ်ရန်နှင့်သတင်းအချက်အလက်များကိုထုတ်လွှင့်ခြင်းမှတစ်ဆင့်သက်ဆိုင်ရာဖောက်သည်များသို့ဂိမ်းအဆင့်အတန်းကိုထပ်တူပြုရန်လိုလိုလားလားကိုဒီဇိုင်းဆွဲနိုင်သည်။
PHP နှင့် Unity3D တို့ပေါင်းစပ်ခြင်းအားဖြင့် Workermans ကို အသုံးပြု. WebEntion Containerman ကို အသုံးပြု. Workerman ကို အသုံးပြု. အလိုအလန့်ခန်းနှင့်အ 0 တ်အ 0 န်းနှင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းတွေ့ဆုံရန်လိုအပ်သည်။ ဤဗိသုကာသည်ပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်မှုရှိသည့်နှင့်အသေးစားနှင့်အလတ်စားညီမျှမှု Multiplayer Online Games ၏ဖွံ့ဖြိုးတိုးတက်မှုအတွက်သင့်တော်သည်။