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. centos配置chrome+selenium

    参考资料 https://blog.csdn.net/wkb342814892/article/details/81591394 1. 安装chrome-browser wget https://dl ...

  2. 统计numpy数组中每个值出现的个数

    统计numpy数组中某一个值或某几个值出现的个数:sum(data==4) # 统计出现了几个cluster include0Cluster = sum(res == 0) include1Clust ...

  3. DataTable 删除行 UpdateTable 方法

    .不要使用DataTable.Rows.Remove(row) 而要使用 DataTable.Rows[i].Delete() .DataTable.Rows.Remove(row)相当于DataTa ...

  4. SpringBoot扩展点之二:ApplicationRunner和CommandLineRunner的扩展

    CommandLineRunner并不是Spring框架原有的概念,它属于SpringBoot应用特定的回调扩展接口: public interface CommandLineRunner { /** ...

  5. Linux下查看.so和可执行文件是否debug编译

    如何判断一个.so是否是debug编译的? 如果用此方法:用file来查看一个.so, 根据是否包含”not stripped”来判断该.so是否是debug编译的.然而stripped/not st ...

  6. BFS --- 模板题

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36079   Accepted: 11123 ...

  7. NodeJS安装及部署(Linux系统)

    环境说明:Linux环境,CentOS 7版本. 第一步:下载node地址:https://nodejs.org/en/download/ 下载后,是一个[node-v10.16.0-linux-x6 ...

  8. <!DOCTYPE html> 详解

    前段时间的.netcore web应用程序的项目里面使用Frameset与Frame时候出现了一个问题就是使用不了,今晚准备测试一个bug却得到意外收获o(∩_∩)o 哈哈, 找到了最终原因funny ...

  9. 通过Nginx为网站配置二级域名

    目录 配置域名解析 配置Nginx 重启Nginx 补充 需求:服务器上面运行多个项目:实现每个二级域名访问对应项目: 服务器:阿里云服务器:域名:阿里云注册: 配置域名解析 即配置DNS解析.一定要 ...

  10. python的new与init

    基于文章:Why is init() always called after new()? 特别说明: 这篇文章的灵感来源于stackoverflow的一个提问,准确说,我只是做了些知识梳理的工作,对 ...