နိဒါန်း
ခေတ်သစ် application များတွင် Real-Time တည်နေရာခြေရာခံခြင်းသည်စီမံကိန်းများစွာ၏အဓိကအစိတ်အပိုင်းတစ်ခုဖြစ်လာသည်။ ဥပမာအားဖြင့် Real-time positioning, navigation, multiplayer ဂိမ်းများစသည်တို့သည်ဤအင်္ဂါရပ်အပေါ်မှီခိုနေရသည်။ ဤဆောင်းပါးသည်သင့်အားဤနည်းပညာကိုလှည့်စားသူများကိုနားလည်သဘောပေါက်ရန်နှင့်အကောင်အထည်ဖော်ရန်အတွက်အချိန်နှင့်တပြေးညီတည်နေရာခြေရာခံခြင်း function ကိုနားလည်သဘောပေါက်ရန် PHP နှင့် Unity3D မှတစ်ဆင့်အဆင့်ဆင့်ကိုအဆင့်ဆင့်တက်လှမ်းပါလိမ့်မည်။
လိုအပ်ချက်ပြင်ဆင်မှု
သင်မစခင်, အောက်ပါပြင်ဆင်မှုများကိုသင်ပြီးဆုံးပါစေ။ - ** PHP နှင့် Workermaner ကို install လုပ်ခြင်း ** - PHP ကိုသင်၏ဆာဗာတွင်ထည့်သွင်းပြီး 0 မ်းကျောင်းမူဘောင်ကိုတေးရေးဆရာမှတဆင့် install လုပ်ပါ။
အကောင်အထည်ဖော်မှုလုပ်ငန်းစဉ်
1 ။ Unity3D စီမံကိန်းကိုဖန်တီးပါ
ပထမ ဦး စွာ UNITY3D ဖွင့်လှစ်ခြင်းနှင့်စီမံကိန်းအသစ်တစ်ခုဖန်တီးပါ။ တစ် ဦး ခြေရာခံအရာဝတ်ထုအဖြစ်မြင်ကွင်းတစ်ခုတွင် 3D မော်ဒယ်ထားပါ။
2 ။ Unity3D script များကိုရေးပါ
unity3d တွင် C # # script ကိုဖန်တီးပါ။ `trackingingscript.cs ဟုအမည်ပေးပြီးအောက်ပါကုဒ်ကိုရိုက်ထည့်ပါ။
unityengine ကိုအသုံးပြုခြင်း;
Public Class Trackingscripts: Monobehaviour
{
prical socket socket,
ပုဂ္ဂလိကပျက်ပြယ် start ()
{
// server socket = socket (atressfamily.internetwork, socketypepe.stepe.tram, protocype.tcp) ကိုဆက်သွယ်ပါ။
Socket.Connect ("server IP address", 2345),
Debug.log ("အောင်မြင်စွာချိတ်ဆက်");
}
ပုဂ္ဂလိကပျက်ပြယ် update ကို ()
{
// လက်ရှိအနေအထား vector3 အနေအထား = transform.position;
// socket string message = position.x + "+" + position.y + "+ position.y +" + "+" + "+" + + + + position.z;
byte [] buffer = encoding.default.getytes (သတင်းစကား);
Socket.send (ကြားခံ);
}
ပုဂ္ဂလိကဗန်းဒ် ondestroy ()
{
// ဂိမ်း၏အဆုံးမှာ connection socket.close () ကိုပိတ်ပါ။
}
}
3 ။ ဆာဗာ - ဘေးထွက် PHP ဖိုင်ကိုဖန်တီးပါ
ဆာဗာပေါ်ရှိ `tracking_server.php` ဟုအမည်ရှိ php ဖိုင်ကိုဖန်တီးပြီးအောက်ပါကုဒ်ကိုထည့်ပါ။
__Dir__ __DIRT_ONCECE ။ '/vendor/autoload.php';
Workerman \ Warder ကိုသုံးပါ။
$ အလုပ်သမား = အလုပ်သမားအသစ် ("Websocket :/0.0.0.0.0: 2345,
$ 0 န်ထမ်း -> onmessage = function ($ ဆက်သွယ်မှု, $ ဒေတာ) {
// တည်နေရာသတင်းအချက်အလက်ကိုလက်ခံရရှိပြီးနောက် connected clients forach ($ ဆက်သွယ်မှု -> 0 န်ထမ်းများ >>> 0 န်ထမ်းများ> ဆက်သွယ်မှုများအနေဖြင့် $ client_Connection အဖြစ်)
$ client_connection-> Send ($ ဒေတာ);
}
};
အလုပ်သမား :: Runall ();
4 ။ ဆာဗာကိုစတင်ပါ
ဆာဗာဘက်မှစတင်ရန်အောက်ပါ command ကို run ပါ။
PHP Tracking_Server.php Start
5 ။ ဂိမ်းကို Unity3D တွင်ပြေးပါ
Unity3D ရှိ Run ခလုတ်ကိုနှိပ်ပြီးဂိမ်းစတင်မည်။ 3D မော်ဒယ်လ်လှုပ်ရှားမှုရွေ့လျားသောအခါတည်နေရာသတင်းအချက်အလက်ကို socket မှတဆင့်ဆာဗာသို့ပို့သည်။
6 ။ Unity3D မြင်ကွင်းများသို့ scripts များထည့်ပါ
`trackingscript.cs`s` script ကို Unity3D မြင်ကွင်းတွင်အချည်းနှီးသောအရာဝတ်ထုတစ်ခုကိုပူးတွဲပါ။
7 ။ Real-time တည်နေရာခြေရာခံခြင်း
ယခုအချိန်တွင်သင်သည် 3D မော်ဒယ်များ၏တည်နေရာကိုအဆိုးမြင်ရှိ 3D မော်ဒယ်များ၏တည်နေရာကိုခြေရာခံသည့် function ကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ခဲ့သည်။ မော်ဒယ်လ်ကိုရွေ့လျားသည့်အခါတိုင်းတည်နေရာအချက်အလက်များကို PHP server သို့အချိန်မှန်သို့ Socket မှတစ်ဆင့်ပို့ပေးပါလိမ့်မည်။
အကျဉ်းချုပ်
PHP ၏ Workerman framework ကို UNITY3D နှင့်ပေါင်းစပ်ပြီးရိုးရိုး Real-time တည်နေရာခြေရာခံခြင်း function ကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ခဲ့သည်။ Real-Time Multiplayer ဂိမ်းများတွင်တည်ဆောက်ခြင်း, Navigation function function function function function function များကိုပေါင်းထည့်ခြင်းစသည့်အမှန်တကယ်လိုအပ်ချက်နှင့်အညီ developer များက၎င်းတို့၏လုပ်ဆောင်ချက်များကိုတိုးချဲ့နိုင်သည်။ ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်