搭建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 ...
随机推荐
- centos配置chrome+selenium
参考资料 https://blog.csdn.net/wkb342814892/article/details/81591394 1. 安装chrome-browser wget https://dl ...
- 统计numpy数组中每个值出现的个数
统计numpy数组中某一个值或某几个值出现的个数:sum(data==4) # 统计出现了几个cluster include0Cluster = sum(res == 0) include1Clust ...
- DataTable 删除行 UpdateTable 方法
.不要使用DataTable.Rows.Remove(row) 而要使用 DataTable.Rows[i].Delete() .DataTable.Rows.Remove(row)相当于DataTa ...
- SpringBoot扩展点之二:ApplicationRunner和CommandLineRunner的扩展
CommandLineRunner并不是Spring框架原有的概念,它属于SpringBoot应用特定的回调扩展接口: public interface CommandLineRunner { /** ...
- Linux下查看.so和可执行文件是否debug编译
如何判断一个.so是否是debug编译的? 如果用此方法:用file来查看一个.so, 根据是否包含”not stripped”来判断该.so是否是debug编译的.然而stripped/not st ...
- BFS --- 模板题
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 36079 Accepted: 11123 ...
- NodeJS安装及部署(Linux系统)
环境说明:Linux环境,CentOS 7版本. 第一步:下载node地址:https://nodejs.org/en/download/ 下载后,是一个[node-v10.16.0-linux-x6 ...
- <!DOCTYPE html> 详解
前段时间的.netcore web应用程序的项目里面使用Frameset与Frame时候出现了一个问题就是使用不了,今晚准备测试一个bug却得到意外收获o(∩_∩)o 哈哈, 找到了最终原因funny ...
- 通过Nginx为网站配置二级域名
目录 配置域名解析 配置Nginx 重启Nginx 补充 需求:服务器上面运行多个项目:实现每个二级域名访问对应项目: 服务器:阿里云服务器:域名:阿里云注册: 配置域名解析 即配置DNS解析.一定要 ...
- python的new与init
基于文章:Why is init() always called after new()? 特别说明: 这篇文章的灵感来源于stackoverflow的一个提问,准确说,我只是做了些知识梳理的工作,对 ...