-
IDE安装
使用Rider2023.4(更新到最新版),需要安装以下内容:
- windows安装.Net8, mac请用homebrew安装.Net8跟powershell
- 不支持VS,新人用VS搞出各种问题请不要来问我,我也没用过VS,后期搞熟了可以自己改用VS
-
出现如下报错 [Package Manager Window] Error searching for packages. 不用处理,这是因为github package的注册表跟unity有些不兼容导致的,忽略即可
-
该分支必须使用Unity2022.3.15(初学者请在此版本用熟后再切换其他版本)
-
整个过程请开启全局翻墙,否则各种unity包 nuget包下载不下来,报memerypack等错误
-
启动UnityHub,打开(Open) -> 选中'ET'文件夹所在目录后打开工程,特别注意,ET9的目录结构跟ET8.1完全不同,请全新下载整个工程,不要从老的工程切过来
-
打开工程后,点击Unity菜单 -> Edit -> Preferences -> External Tools,点击下拉框'External ScriptEditor'选择Rider,Generate .csproj files for要勾选前两个
-
在你的github中获取token,获取方法:打开 https://github.com/settings/tokens 选择tokens(classic),点击generate new token,下面全部勾选,点击确定,复制你的token保存
-
打开菜单Packages->Manage scope registries, 点击ET-Packages Edit, 把你的github token粘贴到token里面 save,然后再看到User Credentials on this computer点+号, Registry URL填入 https://npm.pkg.github.com/@ET-Packages token填入你的github token
always auth 填 true 点击add -
在https://github.com/orgs/ET-Packages/packages 中选择包安装,目前有两个demo, cn.etetet.lockstep跟cn.etetet.statesync分别是帧同步跟状态同步
-
打开Unity的PackageManager,点击左上角加号,选择add package by name,输入包名,点击右边add,会把所有的依赖包下载,如果没有出现日志git Dependencies are all installed,说明安装不完整,可以重新点击ET->RepairDependencies修复,直到安装成功,这时候仍然有大量报错,暂时不用管
-
安装完成点击Unity菜单,Assets->ReImport All, 这里主要是Unity有bug,有些资源无法显示
-
运行Unity菜单 ET->StateSync->Init或者ET->LockStep->Init (这一步会导Excel 导Proto 生成assemlbyreference 添加INITED宏,并且自动链接demo中的ET.sln到根目录)
-
点击Unity菜单 Assets->Open C# Project,这里由于修改了rider插件,会自动打开ET.sln
-
编译整个ET.sln, 注意要翻墙,否则可能nuget包下载不下来,导致编译出错(翻墙后如果还有报错解决不了可以尝试先用VS打开ET.sln编译一次后再回到Rider重新编译一次)
-
Unity中双击Packages/ET.Loader/Scenes/Init场景,点击Play(▶)即可运行
-
帧同步默认是一个人匹配,如果需要多人匹配,修改LSConstValue.cs中的MatchCount 客户端服务端都要重新编译,都要重启即可
-
注意要独立启动服务器,右键UnityHub,以管理员身份运行UnityHub,然后启动Unity(没有管理员启动是不行的,因为服务端要开启http服务,普通权限开不了), 停止Unity Play,点开Unity菜单->ET->Server Tools->Start Server(Single Process),这样就单独启动了服务端。打开Unity菜单 -> ET -> BuildTool中CodeMode改成Client,点击Unity Play,登录。
如果还是连接不上报10037错误,注意看ET/Logs目录,看有没有Error日志。 如果要用rider启动服务器,rider也必须用管理员权限启动 注意一定要用 netsh http delete urlacl 命令删除掉所有自己添加的urlacl,具体使用方法请谷歌 客户端注意要打开cn.etetet.loader/Resources/GlobalConfig, 把CodeMode换成Client -
注意独立运行服务器的目录不再是Bin目录,而是Bin的上一层目录,也就是Unity目录,比如 dotnet.exe Bin/ET.App.dll --Console=1
-
有问题请论坛提问,贴出服务端error log跟客户端error log,没有日志无法回复
-
点击HybridCLR -> Installer,点击安装,等待安装完成
-
点击Unity菜单 -> ET -> Compile(或按快捷键F6)进行编译
-
点击HybridCLR -> Generate -> All
-
点击HybridCLR -> CopyAotDlls,这一步会把需要补充元数据的dll复制到'Assets/Bundles/AotDlls'目录
-
打开YooAsset -> AssetBundle Builder窗口,按照以下步骤操作:
①BuildPipeline : 'ScriptableBuildPipeline'
②BuildMode : 'IncrementalBuild'
③CopyBuildinFileOption : 'ClearAndCopyAll'
④点击'Click Build'
-
Assets/Resources/GlobalConfig EPlayMode选择'HostPlayMode', 打开Unity菜单 -> ET -> BuildTool,点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
另:请自行研究YooAsset包管理库的使用方式(YooAsset官网)
-
若需要体验此功能,需要在Unity菜单 -> Edit -> Preferences -> General窗口的 'ScriptChangesWhilePlaying' 中 选择 'RecompileAfterFinishedPlaying'
-
运行后修改并编译代码,点击Unity菜单 -> ET -> Reload(或按快捷键F7)即可
一、常见出错原因:
- 中文目录
- Rider或VS没有更新到最新版本
- Rider或VS没有安装相关组件
- 没安装.Net8
- 没编译服务端所有工程
- Unity版本不兼容
- Win7用户,没有特别设置
- 编译过程中如果出现依赖问题,也有可能是'Unity菜单 -> Edit -> Preferences -> External Tools -> Generate .csproj files for': 当中勾选了:'Registry packages' 或 'Build-in packages', 请记得都不要勾选(□)
- 如果打包报错缺少"StreamingAsset",自己在 'ET/Unity/Assets' 下新建一个 StreamingAsset 文件夹即可