zoukankan      html  css  js  c++  java
  • 搭建unity客户端

    1.新建个unity的项目ChatClient

    2.在unityMain Camera下挂载个脚本PhotonServerEngine做为与服务器端通信的脚本

    3.PhotonServerEngine脚本中添加引用Photon3Unity3D.dll

    路径:C:Program FilesPhoton Serverlib

    Photon3DotNet.dll   //普通的客户端程序

    Photon3Unity3D.dll  //unity的客户端程序

    4.PhotonServerEngine下编写具体的代码

    using UnityEngine;

    using System.Collections;

    using ExitGames.Client.Photon;

    using System;

    using System.Collections.Generic;

    //让当前类继承IPhotonPeerListener,用于接收服务器的信息

    public class PhotonServerEngine : MonoBehaviour, IPhotonPeerListener

    {

        private PhotonPeer peer;

        private bool bConnet = false;

        void Start()

        {

            //实例化一个PhotonPeer,把当前类当成接收对象,使用TCP协议

            peer = new PhotonPeer(this, ConnectionProtocol.Tcp);

            //连接本地服务器 IP127.0.0.1  TCP端口号:4530

            //通过PhotonServer.config文件,查找TCPListeners获取TCP端口号

            peer.Connect("127.0.0.1:4530", "ChatServer");

        }

        void Update()

        {

            //当每一帧时调用Service检查消息队列中的请求,并且发送请求

            peer.Service();

        }

        void OnGUI()

        {

            if (bConnet)

            {

                if (GUILayout.Button("Send Operation"))

                {

                    //与服务器端进行通信,发起请求

                    Dictionary<byte, object> dict = new Dictionary<byte, object>();

                    dict.Add(1, "UserName");

                    dict.Add(2, "UserPassWord");

                    peer.OpCustom(1, dict, true);

                }

            }

        }

        //当返回调试信息时被调用

        public void DebugReturn(DebugLevel level, string message)

        {

        }

        //当有新消息事件时被调用

        public void OnEvent(EventData eventData)

        {

            

        }

      //当服务器端响应时被调用

      public void OnOperationResponse(OperationResponse operationResponse)

        {

            //接收服务器返回的数据

            object ob_1 = null;

            object ob_2 = null;

            operationResponse.Parameters.TryGetValue(1, out ob_1);

            operationResponse.Parameters.TryGetValue(2, out ob_2);

            Debug.Log("UserName = " + ob_1.ToString() +"|" +  "PassWord = " + ob_2.ToString());

        }

        //当状态改变时调用

        public void OnStatusChanged(StatusCode statusCode)

        {

            switch(statusCode)

            {

                case StatusCode.Connect:

                    bConnet = true;

                    Debug.Log("connect Succes");

                    break;

            }

        }

    }

    5.必须保证Server应用己启动,未启动的话先运行PhotonControl.exe,选择default->start as appliaction, 如果正常显示蓝色图标,出现异常显示灰色图标.

    6.最后运行unity, start方法被调用连接本地服务器端的TCP端口,点击GUI按钮,发起请求.

  • 相关阅读:
    浙江省新一代多普勒天气雷达系统
    删除目录下的所有文件及子文件夹
    在南京14所测试出厂雷达(转)
    c++实现aes加密算法,对字符串进行加密
    自已在别人基础上封装的AES数法 C++
    IOS发布问题
    GameCenter 使用指南
    [iOS]AES加密在iOS上面的实现
    【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012625日更新iap恢复详解】
    基于cocos2dx引擎的游戏框架设计
  • 原文地址:https://www.cnblogs.com/fzxiaoyi/p/8440013.html
Copyright © 2011-2022 走看看