学习目标:
ET框架-Demo工程的编译与运行
学习内容:
1.Unity工程代码编辑器的设置
2.服务器配置
3.运行Server.App
4.手动去编译Unity客户端代码
5.运行客户端
6.打包客户端(以及打包BUG解决)
7.运行测试
学习时间:
2022.2.19
学习产出:
1.Unity工程代码编辑器的设置
打开Edit-Preferences
我们将代码编辑器设置为我们之前安装的VS2022
在Unity下面使用VS2022打开一次项目
2.服务器配置
进入目录,打开Client-Server.sln
需要在"工具-选项-适用于Unity的工具-常规"里,把杂项里的禁止完整生成项目改为False
然后我们选择Client下面的Mono,右键
点击重新生成
然后我们选择解决方案,然后右键
我们重新生成解决方案
现在我们ET框架所有的源代码都被编译完成了
3.运行Server.App
点击即可运行
然后我们就开启了黑窗口
但是我们的黑窗口并没有任何的日志输出,我们并不知道是否启动成功,或者是否报错,那我们应该在哪去查看呢?
答案是,在Logs文件夹下面
这两个文件,就是我们的log文件
这里我们不免会好奇,为什么我们我们的日志不在控制台的黑窗口输出呢?为何要多此一举生成一个文件,每一次还得打开log文件去查看?
原因有二:
- 首先我们的服务器如果出现问题,exe文件崩溃,那么日志文件就会全部消失,我们根本无法去定位我们的错误在哪,这也是为什么我们需要将log文件保留下来的重要原因
- 我们是没办法在正式服务器程序去查看这个黑窗口
打开日志文件,发现Server启动成功
4.手动去编译Unity客户端代码
我们的代码并不是放在Assets文件夹下面,而是与Assets文件夹同级的Codes文件夹下面,这样做的好处就是方便热更新,我们并不需要Unity自动的去帮我们编译代码,反而,我们可以随时进行修改,然后随时进行编译,这是很方便同时也很有意义的一件事。
这也是ET框架最大的优点之一
在Unity–Tools–BuildCodeDebug点击
编译完成
5.运行客户端
我们打开场景Init,然后将代码Init的CodeMode从IL Runtime热更新模式变为Mono模式,来保证我们游戏运行的一个正确性
我们直接点击登录
然后进入地图
我们鼠标右键对应位置,小人会跟随移动
如果出现了全部爆红的情况,可能是材质丢失
我们选择对应的物体,然后将Shader改为Unity自带的默认的Shader即可解决
6.打包客户端(以及打包BUG解决)
我们发现,这里只有一个小人在移动
既然是网络游戏,那是不是应该来多个小人一起才有意思呢?
好主意,那我们就去Build我们的项目
首先我们进入ProjectSettings
将其设置为窗口显示
然后我们进入Tools点击打包工具
勾选三个之后,点击打包
这里出现了bug
显示我们没有StreamingAssets文件夹
那我们就自己创建一个
又出现了一个bug
IL2CPP is not installed
这里我们进入UnityHub
添加一个模块,名为Windows Build Support(IL2CPP)
然后我们重启项目,然后进入Tools打包
打包完成之后,我们进入Release文件夹
打包完成
7.运行测试
我们重新启动我们的服务器,也就是
然后我们打开两个以上的客户端
我们发现,两个客户端的玩家位置会同时进行同步