加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Unity客户端的简单发送消息到服务器的功能

(2016-11-13 10:29:04)
标签:

游戏开发

分类: 服务器

首先需要在photon文件夹中lib 中的photon3Unity.dll 复制到unity项目文件夹中

http://s1/mw690/001KF55Fzy76nykCnCM50&690


using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using ExitGames.Client.Photon;

 

public class PhotonServer : MonoBehaviour,IPhotonPeerListener //继承客户端接口,实现接口方法

{ 

    public string Ip = "127.0.0.1:4530";  //服务器IP和端口 

    private PhotonPeer peer; //客户端实例

// Use this for initialization

void Start () {

    peer=new PhotonPeer(this,ConnectionProtocol.Tcp);   //创建客户端,  传输方式是TCP

 

    peer.Connect(Ip, "MyServer");   //开始连接服务器,IP是本机地址,端口是4530,  端口可以再PhotonServer.config文件中修改TCP的端口, "ZFJChat"是连接游戏项目的名称

        Debug.Log("开始连接到服务器");

}

 

// Update is called once per frame

void Update () {   

        peer.Service();  //整合发送到服务器端的信息, 打包一起后发送到服务器

    if (Input.GetKeyDown(KeyCode.Space))   //按下space按键,发送一则文本消息到服务器

    { 

            Dictionary<</span>byte,object> parameter=new Dictionary<</span>byte, object>();   //新建一个包含单个或多个的消息字典

            parameter.Add(3,"hello,PhotonServer!");   //添加一个文本到键码为3的字典中

        peer.OpCustom(1, parameter,true);  //传输数据的操作键码为1  

        }

}

 

    public void DebugReturn(DebugLevel level, string message)   //收到服务器发送的debug信息

    {

        Debug.Log("收到服务器端发送的Debug信息:"+message);

    }

 

    public void OnOperationResponse(OperationResponse operationResponse)  //收到服务器回应信息

    {

        byte opCode = operationResponse.OperationCode;

        object message;

 

        switch (opCode)

        {

            case 1:

                if (operationResponse.Parameters.TryGetValue(3, out message))  //3 是该消息的键码,这里是发送给服务器消息文本的字典键码

                {

                    Debug.Log("收到服务器的回应信息:"+message.ToString());    //log服务器回应的消息

                }

                break;

        }

    }

 

    public void OnStatusChanged(StatusCode statusCode)   //是否联网的状态

    {

        switch (statusCode)

        {

                case StatusCode.Connect:

                Debug.Log("已经连接到服务器");

                break;

                case StatusCode.Disconnect:

                Debug.Log("从服务器断开");

                break;

        }

    }

 

    public void OnEvent(EventData eventData)    //接受来自服务器端发送的事件

    {

       // byte opCode = eventData.Code;

        Dictionary<</span>byte, object> parameter = eventData.Parameters;

 

        object message;

        parameter.TryGetValue(3, out message);  //3 是该消息的键码,这里是随意些的键码

        Debug.Log("收到服务器发送的事件:"+message.ToString());

    }

}

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有