文章目录

  • 服务端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

  1. 去官网 https://windows.php.net/download 下载一个Thread Safe X64/X86版本的zip
  2. 解压zip
  3. 设置环境变量为解压后的路径

遇到问题,可以去 https://www.workerman.net/windows 网站,查看详细步骤

启动服务器

双击工程里的 server\GatewayWorker\start_for_win.bat 文件

结束服务器

  1. 在启动服务器的“Windows 命令处理程序”按2次键盘 Ctrl+C
  2. 输入Y
  3. 回车键

切勿“结束服务器”,因为后面需要连接服务器。这里只是陈述如何结束服务器的步骤

客户端Unity(版本Unity2021.3.5f1)

入口场景为:SceneLaunch.unity

1.发布Windows客户端

  1. 发布Windows客户端
    1.1 打开Addressables窗口(如下图点击菜单)

    1.2 打包Bundle资源(如下图点击菜单)

    1.3 构建可执行文件(如下图点击菜单+按钮)

    1.4 双击构建成功的可执行文件Dice.exe,即可运行

ws/wss(不发布微信小游戏,请忽略此点)

微信小游戏测试阶段是支持ws协议,但是上线需要改为wss协议。ws改wss的步骤:

  1. 客户端修改:client\Assets\Scripts\UI\Window\UILogin\UILogin.Login.cs
WebSocketClient.Instance.Connect("ws://" + ip + ":" + port, onConnect2Login);

改成

var domainName = "请自行申请域名";
WebSocketClient.Instance.Connect("wss://"+domainName, onConnect2Login);
  1. 服务端修改,请跳如下链接:
    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

  1. 发布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相关推荐

  1. Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)2

    Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1 上篇文章只讲述工程使用.发布.并没讲述任何流程和实现原理.然而下面先讲述 ...

  2. PHP服务端、Unity客户端 双端基础源码做avalon阿瓦隆桌游面sha(类似狼人游戏)支持WebGL、小程序发布

    文章目录 PHP服务端发布(Windows下演示) Windows 安装PHP 启动服务器 Linux家族 Unity客户端发布 发布Windows客户端 发布WebGL端 演示 源码解析 联系作者 ...

  3. Unity发布WebGl注意事项

    unity 版本是5.5,不过看了2017的文档好像也是差不多,绝大部分都是根据官方文档,希望有帮助,如果有错误或者你知道更多这方面的只是,请告知下,大恩言谢. 1:对webgl发布的工程文件说明 在 ...

  4. 【Unity基础知识之一】 Unity支持 IOS 64-BIT

    由于苹果的iOS上线的时候必须支持64位,否则游戏会被拒绝,在这里官方的文档给出了,如何配置unity,使得unity支持64位的iOS,使用IL2CPP技术. Today we announce t ...

  5. Unity发布WebGL注意事项以及移动端打开webgl网页

    Unity发布WebGL网页端 Unity发布webGL项目时存在很多的易错点,这些错误点没有统一的规律,因为是跨平台开发,开发过程中需要去解决未知的和已知的报错点,下面就我这两年开发WebGL遇到的 ...

  6. Unity开发webgl学习中文手册的笔记

    Unity开发webgl没做过,看手册怕忘下次难得的找所以放到这来了,可以自行去看手册 桌 面平台的大多数主要浏览器的当前版本都支持 Unity WebGL 内容,但不同浏览器提供的支持程度存在差异. ...

  7. unity发布webgl 触摸控制和鼠标控制冲突问题解决

    unity发布webgl 触摸控制和鼠标控制冲突问题解决 参考文章: (1)unity发布webgl 触摸控制和鼠标控制冲突问题解决 (2)https://www.cnblogs.com/pz904/ ...

  8. js判断浏览器是否支持webGL

    起因是我之前开发的网页,用到了three.js制作了一个3d的旋转球体效果. 在各种浏览器上运行都没问题,在IE上也做了兼容代码. 但是今天接电话,老板说你这网页在xp上不显示啊.IE上好使.goog ...

  9. Unity发布WebGL时如何修改默认的载入进度条sf?

    Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...

最新文章

  1. python中package机制的两种实现方式(转载)
  2. matlab2014a + win764bit + vs2013混合编程(.m转成dll供C++调用)
  3. 计算机能破坏光盘中的系统吗,因为某些程序被破坏需要重装系统,用2000的盘重装可以吗?...
  4. Linux海量数据高并发实时同步架构方案杂谈
  5. 如何防止果照外泄?自己先上传就OK!扎克伯格这波操作给网友整不会了
  6. 距离 Java 开发者玩转 Serverless,到底还有多远?
  7. Vim设置括号自动补全和快速跳出
  8. 前端性能优化:使用Data URI代替图片SRC
  9. My FioriTest navigation from master page to detail page
  10. redis缓存设计要点随谈
  11. 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量
  12. java 通过反射得到命名空间_利用反射得到一个命名空间下的所有类,并调用?...
  13. 微信公众平台开发5:翻译功能
  14. linux java串口读写权限_解决linux下java读取串口之权限问题 No permission to create lock file. | 学步园...
  15. 使用 Commander 写自己的 Nodejs 命令
  16. C++ 模板元编程简介
  17. AttributeError: 'NoneType' object has no attribute 'append'
  18. 25%的CPU利用率也能够让一台笔记本如此狼狈 (小红伞)
  19. 计算机电源管理器的用途,联想电源管理软件调整电源模式有什么用?联想电源管理软件电源模式调整和用处...
  20. PHP 获取微视无水印源地址_小红书无水印视频解析下载|小红书在线去水印|小红书视频解析API接口...

热门文章

  1. 【语言-C++】Image - .exe 中的 0x0043a998 处有未经处理的异常: 0xC0000005: 读取位置 0x029d846c 时发生访问冲突
  2. 华为华标HSS关于缺省呼叫转移部分CFD覆盖的格式变化记录
  3. python递归实现文件复制_在python中递归复制文件或目录
  4. 两款亲测非常优秀的压缩软件
  5. 天涯社区谢巍:Facebook区块链转型难度可能大于初创公司
  6. Python SMTP 发送邮件
  7. R语言中可视化图像的标题太长如何进行换行?
  8. PS学习笔记5-选区
  9. mac电脑打不开html文件怎么处理,苹果Mac电脑打不开压缩文件怎么办
  10. 如何解决虚拟机内部错误