说明:本系列学习源码原名为 “最后一战” ,一款类似于王者荣耀、dota之类的5v5实时RPG竞技游戏,为方便,将其命名为 FinalBattle
开发环境:
windows,unity3D 4.6 ,破解工具 Unity 4.x 5.x Pro Patch.exe,vs2010
编译过程中遇到的问题,以及如何解决:
->客户端
1.运行软件的安装
一开始试过用现有的vs2013直接打开项目,要求升级,升完后各种报错,特别是客户端,因为用的4.6的unity库开发,好多底层接口已经在高版本unity中去掉或者修改了,所以要改的地方很多
,特别是该项目用到许多第三方库,根本没法下手,无奈,在电脑安装了多个版本unity,vs2010,才能正常打开游戏
由于Unity4.6需要先破解才能用,到网上找了个破解软件。。。(不再赘述,自行百度摸索)
2. 直接打开 Client.sln 编译是无法编过的,会报错:
error CS0227: 不安全代码只会在使用 /unsafe 编译的情况下出现
解决方法: ‘解决方案资源管理器’ -> 右击 -> 选择 ‘属性’ -> 选择‘生成’ -> 选择 ‘允许不安全代码'
客户端就能编过
3.vs2010 调试unity
客户端的程序都是到处动态库,要想实现但不调试客户端程序,需要Visual studio 官方网站的工具
https://marketplace.visualstudio.com/items?itemName=SebastienLebreton.VisualStudio2010ToolsforUnity
安装好后,重新打开unity ,选择Assets->import package->visual studio 2010 tool ,导入安装的软件
打开vs2010 ,在调试选项中即可看到Attach to Unity.
->服务端
1 默认只加载了 以下工程,网络相关的工程需要自行加载,
uCodeBase ,uCodenet ,需要把编译优化选项去掉,因为默认是release 的,在进行调试的时候无法看到变量的值,具体做法:项目属性->右键-.>配置属性->C/C++ ->优化,把优化选项改成 "已禁用"
2 工程中的项目 ucodenet 无法打断点的问题(提示 ..未加载符号)
将ucodenet 编译出来的ucodenet.pdb文件,放到FinalFight\Server\Bin\x64\Release 下即可
这样该项目对应的源码就有编译信息了
数据库相关:
FinalFight用到了mysql,redis 两种数据库,安装好mysql即可,修改一下密码,然后运行 FinalFight\Server\Bin\x64\Release\dbsql 下 Rebuild.bat脚本,建立游戏数据库表
注意windows下需要添加环境变量 C:\Program Files\MySQL\MySQL Server 8.0\bin 到 path