說明:本系列學習源碼原名為 “最后一戰” ,一款類似於王者榮耀、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