主要学习网址
论坛地址为:https://et-framework.cn
Git地址为:GitHub - egametang/ET: Unity3D Client And C# Server Framework
官方QQ群 : 474643097
多线程多进程框架设计-01预告_哔哩哔哩_bilibili
项目检出
检出项目切换到release8.0分支
GitHub地址:GitHub - egametang/ET: Unity3D Client And C# Server Framework
码云地址:(更新可能不及时,我发文章时,最新的版本是7.2的,最好用GitHub的吧)ET: ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等https://gitee.com/egametang/ET
运行指南
打卡目录下的ET\Book\1.1运行指南.md 文件
运行步骤
-
IDE安装
使用Rider2023.2(更新到最新版),需要安装以下内容:
- 安装.Net7,不要用.Net8,目前并不支持.Net8
- 不支持VS,新人用VS搞出各种问题请不要来问我,我也没用过VS,后期搞熟了可以自己改用VS
-
master分支必须使用Unity2021.3.29(初学者请在此版本用熟后再切换其他版本)
-
启动UnityHub,打开(Open) -> 选中'ET/Unity'文件夹所在目录后打开工程
-
打开工程后,点击Unity菜单 -> Edit -> Preferences -> External Tools 在下拉框'External ScriptEditor'中Rider,Generate .csproj files for全部不要勾选(□)
-
点击Unity菜单 -> Assets -> Open C# Project 启动IDE
-
在Project视图中选中'Assets/Resources/GlobalConfig',把AppType选择成'Demo(状态同步)'或者'LockStep(帧同步)'
-
打开Unity菜单 -> ET -> BuildTool,CodeMode选择Client Server,然后点击ReGenerateProjectFiles
-
打开ET.sln,编译整个ET.sln,注意要翻墙,否则可能nuget包下载不下来,导致编译出错
-
Unity中双击'Assets/Scenes'目录中的Init场景,点击Play(▶)即可运行
-
帧同步默认是一个人匹配,如果需要多人匹配,修改LSConstValue.cs中的MatchCount即可
打包过程
-
点击HybridCLR -> Installer,点击安装,等待安装完成
-
用Rider或VS,编译好Unity.AllHotfix
-
点击HybridCLR -> Generate -> All
-
点击HybridCLR -> CopyAotDlls,这一步会把需要补充元数据的dll复制到'Assets/Bundles/AotDlls'目录
-
打开YooAsset菜单 -> 点击AssetBundle Builder -> 点击下拉框'Copy Buildin File Option' -> 选择'Clear And Copy All' -> 点击'构建'
-
打开Unity菜单 -> ET -> BuildTool 点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
另:请自行研究YooAsset包管理库的使用方式(YooAsset官网),若需要升级请自行替换'ET/Unity/Packages/YooAsset'
ENABLE_DLL模式
- 该模式用于逻辑全热更新,还有热重载,默认就是使用该模式
- 在Unity菜单 -> ET -> ChangeDefines -> Remove ENABLE_DLL(关闭) 或 Add ENABLE_DLL(开启)
- 逻辑打成了一个Model.dll和Hotfix.dll,开启该模式时游戏运行是通过加载dll运行,但这样Unity Editor将无法引用逻辑代码。所以如果有Editor代码需要用到逻辑代码,可以关闭ENABLE_DLL模式
- 若需要体验热重载,需要在Unity菜单 -> Edit -> Preferences -> General窗口的ScriptChangesWhilePlaying 中 选择 'RecompileAfterFinishedPlaying',运行后修改Hotfix代码然后用Rider或VS编译好Unity.AllHotfix工程,再在状态同步Demo中按'R'键
注意事项:
一、常见出错原因:
- 中文目录
- Rider或VS没有更新到最新版本
- Rider或VS没有安装相关组件
- 没安装.Net7
- 没编译服务端所有工程
- Unity版本不兼容
- Win7用户,没有特别设置
- 编译过程中如果出现依赖问题,也有可能是'Unity菜单 -> Edit -> Preferences -> External Tools -> Generate .csproj files for': 当中勾选了:'Registry packages' 或 'Build-in packages', 请记得都不要勾选(□)
- 如果打包报错缺少"StreamingAsset",自己在 'ET/Unity/Assets' 下新建一个 StreamingAsset 文件夹即可
个人总结
前面先不要用dll模式,先用vs2022跑起来,后面用dll模式时一定要用Rider生成解决方案
vs2022配置
必须安装的包:.net桌面开发、使用Unity的游戏开发、使用C++的游戏开发
必须安装的单个包组件:.net7.0运行时、.net8.0运行时