配置photon服务器,unity连接Photon

我真是语文学的不好。。这东西看别人的博客感觉照抄还是要弄一天

首先先弄个服务器。服务器文件放在你放Photon文件下的deloy目录下。

1.visualStudio新建一个 用于“用于创建C#类库(。dll)的项目”

配置photon服务器,unity连接Photon_第1张图片

2.在VisualStudio的解决方案资源管理器中引入几个文件:

那几个文件在你解压Photonserver后那几个文件呢夹中叫 lib的文件夹里

配置photon服务器,unity连接Photon_第2张图片

3.走流程,引入命名空间,继承该继承的,实现该实现的,像这样:

   配置photon服务器,unity连接Photon_第3张图片

配置photon服务器,unity连接Photon_第4张图片

4.在deloy文件夹里新建一个文件夹   FServer,里面再建一个 文件夹  bin

5.回到VS,在解决方案资源管理器中对项目右键,选择“属性”,选择左侧“生成”项,选择输出目录为 上一步的bin

配置photon服务器,unity连接Photon_第5张图片

然后 ,生成

配置photon服务器,unity连接Photon_第6张图片

回到deloy文件夹,里面有两个文件夹,Bin_Win32 根Bin_win64,看你电脑怎么样,32位的选前者,64位的选后者。

进去以后我们来配置服务器。找到配置文件  PhotonServer.config,打开。

打开以后里面很多东西,其实折叠以后就酱紫:

配置photon服务器,unity连接Photon_第7张图片

两个折叠起来灰色的东西是两个服务器配置例子。所以你自己要新建一个的话,就复制其中一个灰色的,粘贴。

或者在例子的基础上添加自己的。。。我这里选择了后者

不管你是上述的哪一种。找到节点,在这个节点中添加子节点,如下:配置photon服务器,unity连接Photon_第8张图片

这个Application代表了你刚刚新建的,把父节点s>的Default设置成 刚刚的Name属性值,我这里是MyServer

 

设置下这个MyServer服务器的连接方式。在  TCPListeners  节点下复制 一个  TCPListener 节点并粘贴,修改下OverrideApplication ,把值改成你刚刚写的Application的Name属性(代表了你刚刚配置的那个Apllication节点就是你的服务器),你可以改改端口啊,什么的。这里是TCP,Udp那边同理

配置photon服务器,unity连接Photon_第9张图片

↑注意一下,TCPListener那边有注释说叫你不要编辑的那个就不要动,不然你选了自己的服务器选择Start As Application之后那个图标会亮一下,然后又变回灰色了

另如果你自己另起一个上几步提及的灰色节点的话,修改下节点开头的那一堆:

配置photon服务器,unity连接Photon_第10张图片

log存放的是日志

保存关闭。运行服务器(在bin_win32或者64文件夹里找到PhotonControl。exe,双击运行),然后对服务器右键,选择运行你的服务器Start As Application

 

 

下面开始Unity。嘻嘻

回到你解压PhotonServerSDK的文件夹,进到 lib 文件夹,找到  Photon3Unity3D.dll 这个东西,在Unity新建一个Plugins文件夹,把那个dll放进去 。如了个下

新建一个脚本,挂到摄像机上

脚本引入命名空间 : using ExitGames.Client.Photon;  ,继承

using UnityEngine;
using ExitGames.Client.Photon;


public class TestConnect : MonoBehaviour, IPhotonPeerListener
{
    #region photon接口实现
    public void DebugReturn(DebugLevel level, string message)
    { 
    }


    public void OnEvent(EventData eventData)
    { 
    }


    public void OnOperationResponse(OperationResponse operationResponse)
    { 
    }


    public void OnStatusChanged(StatusCode statusCode)
    {
        switch (statusCode)
        {
            case StatusCode.Connect:
                Debug.Log("通过TCP连接成功");
                break;
            default:
                Debug.LogError("TCp连接失败");
                break;
        }
    }
    #endregion
    PhotonPeer peer = null;
    private void Start()
    {
        peer = new PhotonPeer(this, ConnectionProtocol.Tcp);
    }
    private void Update()
    {
        peer.Service();//每帧进行轮询,间接实现对photon接口实现方法的调用
    }
    private void OnGUI()
    {
        if (GUILayout.Button("连接"))
            peer.Connect("localhost:4533", "MyServer");//这里的MyServer就是你在刚刚配置文件里设置的Application 的Name属性值
    }
}

你可能感兴趣的:(unity)