2019-08-17

PHotonServer與unity開發(fā)自己簡單的聯網游戲服務器某篇

對于服務器端的開發(fā),先打開一個類庫工程命名為ChatServer,然后需要在我們的類庫項目中引用我們在PhotonServer官網下載的SDK文件夾的bin文件中以下三個程序集


在項目中先創(chuàng)建兩個.net4.61框架的類庫項,我這里分別命名為ChatServer和ChatPeer。設置其生成屬性,生成地址為SDK文件夾下deploy文件夾下。生成地址不對可能會導致查找不到相應的服務器。其中ChatServer:ApplicationBase和ChatPeer:ClientPeer做相應的繼承。

對于ChatServer我們主要重寫實現下面幾個方法

我們一般在CreatePeer()方法里進行ChatPeer對象的實例化并將相應的通道加入集合方便后續(xù)處理。方法在有客戶端進行連接請求時調用。

在Setup()方法里我們將定義日志,一些對客戶端信息的處理方式和一些線程(用于同步信息檢測和發(fā)送);這個方法將在服務器打開運行時調用。

對于TearDown()方法則是通道關閉時自動調用,我們一般在里面放程序結束需要關閉的一些通道和線程。

對于ChatPeer類我們主要重寫實現下面幾個方法。


其中OnDisconnect()方法在通信通道關閉的時候調用,一般我們會在里面實現如通信通道集合的改變和相應玩家對象在其他用戶上消除的指令發(fā)送等。

OnOperationRequest()方法則是在處理由客戶端用PhotonPeer.OpCustom((byte)OpCode, data, true)方法發(fā)來的請求。一般我們會調用一個方法類接口,根據Request的參數來實現具體的處理方法,一般會創(chuàng)建一個處理方法類BaseHandler里面定義抽象函數OnOperationRequest()方法,并定義相應的OpCode用于識別具體是哪個Request的處理方法。

這樣我們的服務端基本功能ok啦,為了能讓PhotonControl.exe文件可以識別,所以我們需要配置PhotonServer.cofig文件其中其它部分和文件中類似,我們的Application配資如下



Name:項目名字;

BaseDirectory:根目錄,deploy文件夾下為基礎目錄;

Assembly:是在生成的類庫中的bin目錄下與我們項目名稱相同的.dll文件的名字;

Type:是主類的全稱,要包含命名空間;其它相關配置官網上都有說明;

配置完成打開PhotonControl.exe既可以看到我們的服務端應用,如下圖就可以打開我們的服務端。

注意方面:注意工程生成目錄放在deploy文件夾下,配置中各名稱工程文件對應。

此時在unity中建立工程,創(chuàng)建Scene,Asserts建立如下,在Plugins中引入相應動態(tài)鏈接庫

PhotonServer SDK中

創(chuàng)建新的空對象命名為PhotonEngine,在其上掛載C#Script,代碼如下,運行后就可以實現與服務器的連接。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 幸福之路 第十章 還可以快樂嗎? 1.快樂可以分為兩類,當然,也存在著中間部分。我認為可以講這兩類快樂分為平淡無奇...
    天文向上閱讀 372評論 1 0
  • 在pycharm中新建了一個turtle.py文件,寫了如下代碼,就是畫一條長度100像素的直線。 執(zhí)行之后報錯:...
    扣籃的左手閱讀 4,016評論 1 0
  • 飛舞輕揚_c63b閱讀 213評論 2 1
  • 今天是豬蹄出攤的第三天。 出攤前先要把配菜生菜洗干凈,一個一個在餐盒內的放好,在準備好零錢。用了單獨的一個餐盒專門...
    沐子2閱讀 246評論 0 0
  • 昨天,簡書鉆排名上升34位,位居2301位。三天上升100位。按照目前上升幅度,達到計劃中的第2000名尚需9天。...
    魏小強閱讀 935評論 7 36

友情鏈接更多精彩內容