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. Maven 教程(21)— maven-compiler-plugin 插件详解--

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/80236077 maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样 ...

  2. flowable ui 界面请假流程操作实例

    如题,网上的教程多是代码居多,UI界面操作实例那更是一页难求,楼主分享下几天来的入坑经历,希望有需要了解,但是不知道去哪里了解的小伙伴,看完我的文章后能有所启发,文章有不足之处还请指正,若有相关问题请 ...

  3. SQLServer ---------- 安装SQLserver数据库

    1.安装SQLserver 数据2008 的地址 https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html?qq-pf-to=pc ...

  4. Faiss的学习和入门文章

    可以看这里的文章: https://www.leiphone.com/news/201703/84gDbSOgJcxiC3DW.html https://waltyou.github.io/Faiss ...

  5. [IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置

    本教程为在 Docker 中配置 .Net Core,如果想在树莓派 Raspbian 系统中配置 .Net Core,请参考:[IOT] - 在树莓派的 Raspbian 系统中安装 .Net Co ...

  6. ElasticSearch 线程池类型分析之SizeBlockingQueue

    ElasticSearch 线程池类型分析之SizeBlockingQueue 尽管前面写好几篇ES线程池分析的文章(见文末参考链接),但都不太满意.但从ES的线程池中了解到了不少JAVA线程池的使用 ...

  7. python模块、异常

    1. python 模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用 python 标准库的方法.(有点像java的c ...

  8. (火狐浏览器)前端以FormData类形成表单(含文件),通过ajax提交,PHP后端iconv()报“文件名含有非法字符”且POST中的‘Ttitle’丢失

    [错误信息]后端获取的POST中丢失了Ttile,文件名乱码导致iconv()出错,利用mb_detect_encoding()函数检测输入的字符串,返回false; mb_detect_encodi ...

  9. 更改collation批处理

    DECLARE @zcreate_index_sql NVARCHAR(max); SET @zcreate_index_sql = N''; SELECT @zcreate_index_sql = ...

  10. 程序员不装x能行?先给登录来一个图形验证码!(canvas实现)

    细心的同学可以发现,现在很多网站当登录多次之后就会出现一个图形验证码,或是当提交表单.或点击获取手机验证码等等场景都会有图形验证码的出现. 那么图形验证码是为了解决什么问题而出现的呢? 什么是图形验证 ...