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)鏈接庫


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