Unity3D 客户端编程
Photon Server 和 Unity3D 数据交互:
1:打开unity新建新项目,并引入Photon3Unity3D.dll到plugins文件中。

2、新建一个空物体,添加两个脚本文件。

3、编辑Photon Engine。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ExitGames.Client.Photon;
using System; public class PhotonEngine : MonoBehaviour, IPhotonPeerListener
{
//单例模式
private static PhotonEngine instance;
private static PhotonPeer peer; public static PhotonPeer Peer
{
get
{
return peer;
}
} private void Awake()
{
if (instance == null)
{
instance = this;
//不需要销毁
DontDestroyOnLoad(this.gameObject);
}
else if (instance != this)
{
Destroy(this.gameObject);
return;
}
}
private void Start()
{
try
{
//PhotonPeer实例化时需要监听类和连接协议。所以该类继承IPhotonPeerListener接口实现监听
peer = new PhotonPeer(this, ConnectionProtocol.Udp);
peer.Connect("122.237.104.105:5055", "Mygame1");
}
catch (Exception e)
{
Debug.Log(e.ToString());
}
} private void Update()
{
//时刻发送请求
peer.Service();
} private void OnDestroy()
{
if (peer != null && peer.PeerState == PeerStateValue.Connected)
{
peer.Disconnect();
}
} public void DebugReturn(DebugLevel level, string message)
{ } public void OnEvent(EventData eventData)
{
switch (eventData.Code)
{
case :
Dictionary<byte, object> di = eventData.Parameters;
object i;
di.TryGetValue(, out i);
Debug.Log("收到服务器消息" + i.ToString());
break;
case :
break;
default:
break;
} } public void OnOperationResponse(OperationResponse operationResponse)
{
switch (operationResponse.OperationCode)
{
case :
Debug.Log("收到服务器响应!。。。。。");
Dictionary<byte, object> d = operationResponse.Parameters;
object i, j;
d.TryGetValue(, out i);
d.TryGetValue(, out j);
Debug.Log("收到服务器返回" + i.ToString() + j.ToString());
break;
default:
break;
}
} public void OnStatusChanged(StatusCode statusCode)
{
Debug.Log(statusCode);
}
}
4、text类用来发送请求。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class text : MonoBehaviour { private void Update()
{
if (Input.GetMouseButtonDown())
{
SendRequest();
}
} private void SendRequest()
{
Dictionary<byte, object> date = new Dictionary<byte, object>();
date.Add(, );
date.Add(,"sdgsdgdsfg");
PhotonEngine.Peer.OpCustom(, date, true);
}
}
5、运行结果。先启动服务器在启动客户端,鼠标左点击发送请求。
服务端:

客户端:

下载地址:https://gitee.com/today6/unity
Unity3D 客户端编程的更多相关文章
- Redis系列(三)-Redis发布订阅及客户端编程
阅读目录 发布订阅模型 Redis中的发布订阅 客户端编程示例 0.3版本Hredis 发布订阅模型 在应用级其作用是为了减少依赖关系,通常也叫观察者模式.主要是把耦合点单独抽离出来作为第三方,隔离易 ...
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- JAX-RS 2.0 REST客户端编程实例
JAX-RS 2.0 REST客户端编程实例 2014/01/28 | 分类: 基础技术, 教程 | 0 条评论 | 标签: JAX-RS, RESTFUL 分享到:3 本文由 ImportNew - ...
- 【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨) ...
- 开源分享 Unity3d客户端与C#分布式服务端游戏框架
很久之前,在博客园写了一篇文章,<分布式网游server的一些想法语言和平台的选择>,当时就有了用C#做网游服务端的想法.写了个Unity3d客户端分布式服务端框架,最近发布了1.0版本, ...
- unity3D客户端框架
unity3D客户端框架 博客
- go语言之进阶篇http客户端编程
1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...
- 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程
本博文的主要内容有 kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...
- [Real World Haskell翻译]第22章 扩展示例:Web客户端编程
第22章 扩展示例:Web客户端编程 至此,您已经看到了如何与数据库交互,解析一些数据,以及处理错误.现在让我们更进了一步,引入Web客户端库的组合. 在本章,我们将开发一个真正的应用程序:一个播客下 ...
随机推荐
- NYOJ 53 最少步数
题 目 http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=58 思路借鉴 DFS-Deep First Search-深度优先 ...
- 如何让传统ASP.NET网站在Docker中运行
本文主要描述如何让传统ASP.NET网站在Docker中运行,侧重Docker image 搭建. 使用条件: Docker for windows 用户切换到Windows 容器模式 Windows ...
- 【作品】超实用C++分数类
引言 我们说,编程语言的精髓在于封装,而面向对象语言完胜面向过程语言的原因就是具有更好的可封装性,而C++就是这样的一种多范型语言,常用而复杂的工作完全不必在每一份源文件中重敲,就好像我们不需要自己手 ...
- HTML/CSS:图片居中(水平居中和垂直居中)
css图片居中(水平居中和垂直居中) css图片居中分css图片水平居中和垂直居中两种情况,有时候还需要图片同时水平垂直居中, 下面分几种居中情况分别介绍: css图片水平居中 1.利用margin: ...
- CSS: hack 方式一览
本文引自:http://blog.csdn.net/freshlover/article/details/12132801 什么是CSS hack 由于不同厂商的流览器或某浏览器的不同版本(如IE6- ...
- iview自定义实现多级表头
最近更新: 2018-07-19 注意:最新版iview已经提供多级表头功能 参考 原理:利用多个Table组件通过显示和隐藏thead和tbody来拼接表格(较粗暴) html <div st ...
- Opengl_入门学习分享和记录_02_渲染管线(一)顶点输入
现在前面的废话:最近好事不断!十分开心!生活真美好! 好了今天要梳理一下,顶点输入的具体过程,同样也是渲染管线中的第一个阶段的详细过程的介绍.之前介绍过,OpenGL操作的是一组3D坐标,所以我们的输 ...
- python+Selenium-字符运行报错问题
最近开始接触自动化测试,在写一个简单的查询脚本时,遇到编码无法识别的问题 SyntaxError: Non-ASCII character '\xe5' in file F:/soft_Test/py ...
- es6 个人笔记
1.package.json==>npm init node_modules==>npm install webpack -D webpack.config.js==> ...
- 使用BeanShell断言判断请求返回的Json相应结果(不同json格式整理)
第一种json格式 { "code": 0, "msg": "success", "success": true, &q ...