搭建unity客户端
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客户端的更多相关文章
- Netty游戏服务器之三搭建Unity客户端
既然已经写完了相关的服务器处理类,那么我们就来搭建客户端测试一下. 打开我们的unity3d,然后新建一个c#脚本,取名为MainClient. public class MainClient : M ...
- unity客户端与c++服务器之间的简单通讯_1
// 服务器 # pragma once using namespace std; # include <iostream> # include <string> # incl ...
- unity开发android游戏(一)搭建Unity安卓开发环境
unity开发android游戏(一)搭建Unity安卓开发环境 分类: Unity2014-03-23 16:14 5626人阅读 评论(2) 收藏 举报 unity开发androidunity安卓 ...
- svn 服务器的搭建以及客户端的使用
1.svn 服务器的搭建以及客户端的使用,安装见下面的博客 https://blog.csdn.net/zh123456zh789/article/details/80921179 说明:服务器只是用 ...
- [经验] Java 使用 netty 框架, 向 Unity 客户端的 C# 实现通信[2]
在前一篇文章中, 我们实现了从Java netty 服务端到 unity 客户端的通讯, 但是在过程中也发现有一些问题是博主苦苦无法解决的, 但是还好终于有些问题还是被我找刀方法解决了, 现在把这些解 ...
- 从0开始搭建kafka客户端
上一节,我们实现了搭建kafka集群.本节我们将从0开始,使用Java,搭建kafka客户端生产消费模型. 1.创建maven项目2.kafka producer3.kafka consumer4.结 ...
- CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记
CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...
- unity客户端基本框架(转载)
框架概述: 基础系统的框架搭建,其中包括: UI框架(NGUI + MVC) 消息管理(Advanced CSharp Messenger) 网络层框架(Socket + Protobuf ) 表格数 ...
- 【转】unity开发android游戏(一)搭建Unity安卓开发环境
http://blog.csdn.net/chenggong2dm/article/details/20654075 1,下载安装Java的JDK: http://www.oracle.com/tec ...
随机推荐
- SuperMemo
SuperMemo Your friend, Jackson is invited to a TV show called SuperMemo in which the participant is ...
- centos下导出docx为html
yum -y install libreoffice.x86_64 libreoffice --invisible --convert-to html --outdir /root/demo_html ...
- Linux ssh 公私钥配置
Linux ssh 公私钥配置 ssh 公私钥可实现无密码的情况下直接直接登录到服务端.方便我们管理,而且也可以设置ssh完全通过公私钥登录,不可通过密码登录,来提高我们的服务器安全程度. 配置 生成 ...
- bootstrap table--面相配置、hook、适配的表格框架
bootstrap table--面相配置.hook.适配的表格框架
- 总结:WPF中模板需要绑定父级别的ViewModel该如何处理
原文:总结:WPF中模板需要绑定父级别的ViewModel该如何处理 <ListBox ItemsSource="{Binding ClassCollection}"> ...
- 第一次Git上传本地项目到github上 的命令
1.下载Git软件:https://git-scm.com/downloads, 2.下载之后安装就很简单了, 3.邮箱注册 在git bash界面输入如下内容即可完成邮箱的注册: $ git con ...
- 函数内this指向+排序+找出数组大小项+Math类
解决函数内this指向: 1,可以在函数外提前声明变量 _this/that = this 2,通过apply()和call()来修改函数内的this指向 二者区别: 用法是一样的,参数形式不一样 f ...
- linux memcached 的安装
linux memcached安装yum -y install libevent libevent-deve yum list memcached yum -y install memcached m ...
- localStorage、sessionStorage、Cookie的区别及用法
1.webstorage 本地存储,存储在客户端,包括localStorage和sessionStorage. (1)localStorage:生命周期是永久,这意味着除非用户显示在浏览器提供的UI上 ...
- 4.Javascript中实现继承的几种方法及其优缺点
要搞懂JS继承,我们首先要理解原型链:每一个实例对象都有一个__proto__属性(隐式原型),在js内部用来查找原型链:每一个构造函数都有prototype属性(显示原型),用来显示修改对象的原型, ...