1.新建个unity的项目ChatClient

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

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

路径:C:\Program Files\Photon Server\lib

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);

//通过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按钮,发起请求.

搭建unity客户端的更多相关文章

  1. Netty游戏服务器之三搭建Unity客户端

    既然已经写完了相关的服务器处理类,那么我们就来搭建客户端测试一下. 打开我们的unity3d,然后新建一个c#脚本,取名为MainClient. public class MainClient : M ...

  2. unity客户端与c++服务器之间的简单通讯_1

    // 服务器 # pragma once using namespace std; # include <iostream> # include <string> # incl ...

  3. unity开发android游戏(一)搭建Unity安卓开发环境

    unity开发android游戏(一)搭建Unity安卓开发环境 分类: Unity2014-03-23 16:14 5626人阅读 评论(2) 收藏 举报 unity开发androidunity安卓 ...

  4. svn 服务器的搭建以及客户端的使用

    1.svn 服务器的搭建以及客户端的使用,安装见下面的博客 https://blog.csdn.net/zh123456zh789/article/details/80921179 说明:服务器只是用 ...

  5. [经验] Java 使用 netty 框架, 向 Unity 客户端的 C# 实现通信[2]

    在前一篇文章中, 我们实现了从Java netty 服务端到 unity 客户端的通讯, 但是在过程中也发现有一些问题是博主苦苦无法解决的, 但是还好终于有些问题还是被我找刀方法解决了, 现在把这些解 ...

  6. 从0开始搭建kafka客户端

    上一节,我们实现了搭建kafka集群.本节我们将从0开始,使用Java,搭建kafka客户端生产消费模型. 1.创建maven项目2.kafka producer3.kafka consumer4.结 ...

  7. CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记

    CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...

  8. unity客户端基本框架(转载)

    框架概述: 基础系统的框架搭建,其中包括: UI框架(NGUI + MVC) 消息管理(Advanced CSharp Messenger) 网络层框架(Socket + Protobuf ) 表格数 ...

  9. 【转】unity开发android游戏(一)搭建Unity安卓开发环境

    http://blog.csdn.net/chenggong2dm/article/details/20654075 1,下载安装Java的JDK: http://www.oracle.com/tec ...

随机推荐

  1. SuperMemo

    SuperMemo Your friend, Jackson is invited to a TV show called SuperMemo in which the participant is ...

  2. centos下导出docx为html

    yum -y install libreoffice.x86_64 libreoffice --invisible --convert-to html --outdir /root/demo_html ...

  3. Linux ssh 公私钥配置

    Linux ssh 公私钥配置 ssh 公私钥可实现无密码的情况下直接直接登录到服务端.方便我们管理,而且也可以设置ssh完全通过公私钥登录,不可通过密码登录,来提高我们的服务器安全程度. 配置 生成 ...

  4. bootstrap table--面相配置、hook、适配的表格框架

    bootstrap table--面相配置.hook.适配的表格框架

  5. 总结:WPF中模板需要绑定父级别的ViewModel该如何处理

    原文:总结:WPF中模板需要绑定父级别的ViewModel该如何处理 <ListBox ItemsSource="{Binding ClassCollection}"> ...

  6. 第一次Git上传本地项目到github上 的命令

    1.下载Git软件:https://git-scm.com/downloads, 2.下载之后安装就很简单了, 3.邮箱注册 在git bash界面输入如下内容即可完成邮箱的注册: $ git con ...

  7. 函数内this指向+排序+找出数组大小项+Math类

    解决函数内this指向: 1,可以在函数外提前声明变量 _this/that = this 2,通过apply()和call()来修改函数内的this指向 二者区别: 用法是一样的,参数形式不一样 f ...

  8. linux memcached 的安装

    linux memcached安装yum -y install libevent libevent-deve yum list memcached yum -y install memcached m ...

  9. localStorage、sessionStorage、Cookie的区别及用法

    1.webstorage 本地存储,存储在客户端,包括localStorage和sessionStorage. (1)localStorage:生命周期是永久,这意味着除非用户显示在浏览器提供的UI上 ...

  10. 4.Javascript中实现继承的几种方法及其优缺点

    要搞懂JS继承,我们首先要理解原型链:每一个实例对象都有一个__proto__属性(隐式原型),在js内部用来查找原型链:每一个构造函数都有prototype属性(显示原型),用来显示修改对象的原型, ...