PHotonServer与unity开发自己简单的联网游戏服务器某篇
对于服务器端的开发,先打开一个类库工程命名为ChatServer,然后需要在我们的类库项目中引用我们在PhotonServer官网下载的SDK文件夹的bin文件中以下三个程序集
在项目中先创建两个.net4.61框架的类库项,我这里分别命名为ChatServer和ChatPeer。设置其生成属性,生成地址为SDK文件夹下deploy文件夹下。生成地址不对可能会导致查找不到相应的服务器。其中ChatServer:ApplicationBase和ChatPeer:ClientPeer做相应的继承。
对于ChatServer我们主要重写实现下面几个方法
我们一般在CreatePeer()方法里进行ChatPeer对象的实例化并将相应的通道加入集合方便后续处理。方法在有客户端进行连接请求时调用。
在Setup()方法里我们将定义日志,一些对客户端信息的处理方式和一些线程(用于同步信息检测和发送);这个方法将在服务器打开运行时调用。
对于TearDown()方法则是通道关闭时自动调用,我们一般在里面放程序结束需要关闭的一些通道和线程。
对于ChatPeer类我们主要重写实现下面几个方法。
其中OnDisconnect()方法在通信通道关闭的时候调用,一般我们会在里面实现如通信通道集合的改变和相应玩家对象在其他用户上消除的指令发送等。
OnOperationRequest()方法则是在处理由客户端用PhotonPeer.OpCustom((byte)OpCode, data, true)方法发来的请求。一般我们会调用一个方法类接口,根据Request的参数来实现具体的处理方法,一般会创建一个处理方法类BaseHandler里面定义抽象函数OnOperationRequest()方法,并定义相应的OpCode用于识别具体是哪个Request的处理方法。
这样我们的服务端基本功能ok啦,为了能让PhotonControl.exe文件可以识别,所以我们需要配置PhotonServer.cofig文件其中其它部分和文件中类似,我们的Application配资如下
Name:项目名字;
BaseDirectory:根目录,deploy文件夹下为基础目录;
Assembly:是在生成的类库中的bin目录下与我们项目名称相同的.dll文件的名字;
Type:是主类的全称,要包含命名空间;其它相关配置官网上都有说明;
配置完成打开PhotonControl.exe既可以看到我们的服务端应用,如下图就可以打开我们的服务端。
注意方面:注意工程生成目录放在deploy文件夹下,配置中各名称工程文件对应。
此时在unity中建立工程,创建Scene,Asserts建立如下,在Plugins中引入相应动态链接库
创建新的空对象命名为PhotonEngine,在其上挂载C#Script,代码如下,运行后就可以实现与服务器的连接。