Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1
文章目录
- 服务端PHP(Windows下演示)
- 安装PHP
- 启动服务器
- 结束服务器
- 客户端Unity(版本Unity2021.3.5f1)
- 1.发布Windows客户端
- ws/wss(不发布微信小游戏,请忽略此点)
- 演示
- 工程地址
- 扩展
- 发布其他端
- 1. 发布WebGL
- 2. 发布Android客户端(已支持,请参照发布Windows客户端流程)
- 3. 发布iOS客户端(已支持,请参照发布Windows客户端流程)
- 联系作者
- 众所周知 Unity的WebGL不支持TCP/IP(C# Socket)网络层,所以想用Unity做网页游戏或者小游戏,网络层是不能用TCP/IP(C# Socket)的。详情请查看链接WebGL Networkking
所以我通过一个匹配例子,给大家介绍如何使用Websocket来规避这个问题。
首先去gitee下载工程,地址为 https://gitee.com/chasing2moro/dicews
服务端PHP(Windows下演示)
安装PHP
- 去官网 https://windows.php.net/download 下载一个Thread Safe X64/X86版本的zip
- 解压zip
- 设置环境变量为解压后的路径
遇到问题,可以去 https://www.workerman.net/windows 网站,查看详细步骤
启动服务器
双击工程里的 server\GatewayWorker\start_for_win.bat 文件
结束服务器
- 在启动服务器的“Windows 命令处理程序”按2次键盘 Ctrl+C
- 输入Y
- 回车键
切勿“结束服务器”,因为后面需要连接服务器。这里只是陈述如何结束服务器的步骤
客户端Unity(版本Unity2021.3.5f1)
入口场景为:SceneLaunch.unity
1.发布Windows客户端
- 发布Windows客户端
1.1 打开Addressables窗口(如下图点击菜单)
1.2 打包Bundle资源(如下图点击菜单)
1.3 构建可执行文件(如下图点击菜单+按钮)
1.4 双击构建成功的可执行文件Dice.exe,即可运行
ws/wss(不发布微信小游戏,请忽略此点)
微信小游戏测试阶段是支持ws协议,但是上线需要改为wss协议。ws改wss的步骤:
- 客户端修改:client\Assets\Scripts\UI\Window\UILogin\UILogin.Login.cs
WebSocketClient.Instance.Connect("ws://" + ip + ":" + port, onConnect2Login);
改成
var domainName = "请自行申请域名";
WebSocketClient.Instance.Connect("wss://"+domainName, onConnect2Login);
- 服务端修改,请跳如下链接:
https://www.workerman.net/doc/workerman/faq/secure-websocket-server.html
演示
运行2~8个可执行文件Dice.exe,即可开始演示
工程地址
https://gitee.com/chasing2moro/dicews
至此教程已经结束。
如果想更深一步了解工程源码,请阅读下一篇文章:Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)2
如果想了解发布WebGL端,可以继续往下阅读
扩展
发布其他端
1. 发布WebGL
- 发布WebGL
1.1 切换WebGL平台
1.2 修改Default Local Group配置,如下图
1.3 打开Addressables窗口(如下图点击菜单)
1.4 打包Bundle资源(如下图点击菜单)
1.5 构建WebGL
1.6 选择Unity工程同级目录ServerData导出
1.7 将IIS物理路径设置为ServerData
1.8 设置MIME
把下面的MIME类型填充进上面的MIME弹窗
文件扩展名 | MIME类型 |
---|---|
.data | application/octet-stream |
.bundle | application/octet-stream |
.unityweb | application/octet-stream |
如果运行期间发现MIME不全,自行添加对应缺失的MIME
1.9 运行网页。地址为 http://localhost (也可自行在网页上输入此地址运行)
2. 发布Android客户端(已支持,请参照发布Windows客户端流程)
3. 发布iOS客户端(已支持,请参照发布Windows客户端流程)
联系作者
email:chasing2moro@qq.com
Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1相关推荐
- Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)2
Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1 上篇文章只讲述工程使用.发布.并没讲述任何流程和实现原理.然而下面先讲述 ...
- PHP服务端、Unity客户端 双端基础源码做avalon阿瓦隆桌游面sha(类似狼人游戏)支持WebGL、小程序发布
文章目录 PHP服务端发布(Windows下演示) Windows 安装PHP 启动服务器 Linux家族 Unity客户端发布 发布Windows客户端 发布WebGL端 演示 源码解析 联系作者 ...
- Unity发布WebGl注意事项
unity 版本是5.5,不过看了2017的文档好像也是差不多,绝大部分都是根据官方文档,希望有帮助,如果有错误或者你知道更多这方面的只是,请告知下,大恩言谢. 1:对webgl发布的工程文件说明 在 ...
- 【Unity基础知识之一】 Unity支持 IOS 64-BIT
由于苹果的iOS上线的时候必须支持64位,否则游戏会被拒绝,在这里官方的文档给出了,如何配置unity,使得unity支持64位的iOS,使用IL2CPP技术. Today we announce t ...
- Unity发布WebGL注意事项以及移动端打开webgl网页
Unity发布WebGL网页端 Unity发布webGL项目时存在很多的易错点,这些错误点没有统一的规律,因为是跨平台开发,开发过程中需要去解决未知的和已知的报错点,下面就我这两年开发WebGL遇到的 ...
- Unity开发webgl学习中文手册的笔记
Unity开发webgl没做过,看手册怕忘下次难得的找所以放到这来了,可以自行去看手册 桌 面平台的大多数主要浏览器的当前版本都支持 Unity WebGL 内容,但不同浏览器提供的支持程度存在差异. ...
- unity发布webgl 触摸控制和鼠标控制冲突问题解决
unity发布webgl 触摸控制和鼠标控制冲突问题解决 参考文章: (1)unity发布webgl 触摸控制和鼠标控制冲突问题解决 (2)https://www.cnblogs.com/pz904/ ...
- js判断浏览器是否支持webGL
起因是我之前开发的网页,用到了three.js制作了一个3d的旋转球体效果. 在各种浏览器上运行都没问题,在IE上也做了兼容代码. 但是今天接电话,老板说你这网页在xp上不显示啊.IE上好使.goog ...
- Unity发布WebGL时如何修改默认的载入进度条sf?
Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...
最新文章
- python中package机制的两种实现方式(转载)
- matlab2014a + win764bit + vs2013混合编程(.m转成dll供C++调用)
- 计算机能破坏光盘中的系统吗,因为某些程序被破坏需要重装系统,用2000的盘重装可以吗?...
- Linux海量数据高并发实时同步架构方案杂谈
- 如何防止果照外泄?自己先上传就OK!扎克伯格这波操作给网友整不会了
- 距离 Java 开发者玩转 Serverless,到底还有多远?
- Vim设置括号自动补全和快速跳出
- 前端性能优化:使用Data URI代替图片SRC
- My FioriTest navigation from master page to detail page
- redis缓存设计要点随谈
- 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量
- java 通过反射得到命名空间_利用反射得到一个命名空间下的所有类,并调用?...
- 微信公众平台开发5:翻译功能
- linux java串口读写权限_解决linux下java读取串口之权限问题 No permission to create lock file. | 学步园...
- 使用 Commander 写自己的 Nodejs 命令
- C++ 模板元编程简介
- AttributeError: 'NoneType' object has no attribute 'append'
- 25%的CPU利用率也能够让一台笔记本如此狼狈 (小红伞)
- 计算机电源管理器的用途,联想电源管理软件调整电源模式有什么用?联想电源管理软件电源模式调整和用处...
- PHP 获取微视无水印源地址_小红书无水印视频解析下载|小红书在线去水印|小红书视频解析API接口...
热门文章
- 【语言-C++】Image - .exe 中的 0x0043a998 处有未经处理的异常: 0xC0000005: 读取位置 0x029d846c 时发生访问冲突
- 华为华标HSS关于缺省呼叫转移部分CFD覆盖的格式变化记录
- python递归实现文件复制_在python中递归复制文件或目录
- 两款亲测非常优秀的压缩软件
- 天涯社区谢巍:Facebook区块链转型难度可能大于初创公司
- Python SMTP 发送邮件
- R语言中可视化图像的标题太长如何进行换行?
- PS学习笔记5-选区
- mac电脑打不开html文件怎么处理,苹果Mac电脑打不开压缩文件怎么办
- 如何解决虚拟机内部错误