# 运行步骤  
1. visual studio用户须知：
   - 版本：
      - Win10及以上用户，使用.net6, VS 版本，必须使用2022及以上。注意，VS 2019 不支持 .net6，不能使用。
      - Win7 用户，无法安装 VS 2022，需要使用 .net 5 和 VS 2019，但注意需要额外设置以支持ET编译。
   - 依赖：
     - 需要安装"使用Unity的游戏开发"扩展。
     - 需要在"工具-选项-适用于Unity的工具-常规"里，把杂项里的禁止完整生成项目改为False，否则导致你Codes目录里的代码报错。

2. 使用Rider2021.2.2（更新到最新版）, 需要安装以下内容:
   - Rider的Unity插件  
   - 安装 .net6  
   - 2021.2.2 会报".NET SDK 6.0.101 is not fully supported in Rider"，但实际不影响编译(2021.12.21)
   - 2021.3.x 完全支持 .net6

3. master分支需要unity2020.3版（用到了C#8的语法）  

4. 启动Unity， 菜单 File -> Open Project... -> Open 选中ET/Unity文件夹，点击选择文件夹按钮。  

5. 点击Unity菜单 Assets -> Open C# Project 启动vs  

6. 运行Unity菜单上的 Tools->BuildCode，这一步将编译客户端代码  

7. 用Rider打开 ET/Client-Server.sln 编译（**一定要全部工程编译，右键VS解决方案，全部编译**）
   这里报红发现引用错误，是因为Unity的库还没编译到Unity/Temp/Debug目录下面，一般不用管，必须保证Unity是开启的，然后只需要直接编译Client-Server即可，
   Client-Server会编译Unity.Mono。Unity.Mono会把自己依赖的Unity的库复制到Unity/Temp/Debug中。Unity.Model Unity.Hotfix 
   Unity.ModelView UnityHotfix.View都会依赖Unity/Temp/Debug下的库。如果还是爆红，关闭vs或者rider，先打开unity，再打开Client-Server.sln，再
   编译Client-Server   

8.  导表工具，编译完成后命令行进入 Bin 目录，执行 dotnet Tools.dll --AppType=ExcelExporter  

9.  导出协议工具，编译完成后进入 Bin 目录，执行 dotnet Tools.dll --AppType=Proto2CS  

10. 启动服务器: dotnet Server.dll --Process=1 --Console=1

11.  Unity中双击Scenes目录中的Init场景，点击Play即可运行

# 测试状态同步demo
1. 想修改配置就进入 Excel 目录修改对应的表格，做运行步骤的第6步，然后重新运行 Server.App工程来启动服务端。

2. Unity->tools菜单->打包工具，选择PC，勾选是否打包exe，点击开始打包，打出一个PC包在Release目录下。

3. 运行Unity 登录 进入大厅 进入场景

4. 运行PC包 登录 进入大厅

5. 点击鼠标右键即可移动人物

# 注意事项：

一. 出错原因都是：  

1. 中文目录。  
2. VS 版本低
3. Rider没有安装相关组件
4. 没安装 .net6
5. 没编译服务端所有工程
6. Rider要更新到最新版本  
7. Unity版本太低
8. Win7 用户，没有特别设置
9. *编译过程中如果出现依赖问题，也有可能是 Unity - External Tools - Generate .csproj files for:
   当中勾选了 
      1. Registry packages
      2. Build-in packages
10. *如果打包报错缺少"StreamingAsset"，自己在 ET\Unity\Assets 下新建一个 StreamingAsset 文件夹即可。



