【unity dots學習日志】從零開始做個minecraft
說明
unity的ECS框架正式版都發(fā)布很久了,不知道為什么一直沒有人出個新版文字教程,那我來。
該系列并不是按照時間出,而是按照功能里程碑,解決一個大問題就會寫上一點,也就是說,如果我腦子卡住了,當場入宮也不是不可能。
另外我不會特意按照大多數人的環(huán)境來,希望學習商業(yè)化游戲開發(fā)的人注意避雷,有可能給你帶溝里去。
從開發(fā)環(huán)境開始
華碩?RTX2060-O6G
Inter?i5-10400F
Windows 11 Pro 22H2
Unity 2023.1.0b28
Rider 2023.1.2
目標
制作一個仿minecraft的游戲,能跑不太卡就行,但是不嚴格照搬原版玩法(總之就突出一個想到哪做到哪)。
本期主要目標有兩個,建立工程、創(chuàng)建前后端分離工程。
正文

那么,開始吧,從創(chuàng)建工程開始,和大部分教程一樣,我選擇3D-URP工程模板。
這里我說一下默認、URP和HDRP的淺顯區(qū)別(這三者都是指渲染管線):
默認是Unity最早所使用的強兼容管線,也就是說,就算你從遠古版本的Unity升級到Beta版本,管線依然可以使用,當然代碼是另說。
URP是Unity官方所推薦的選項,兼容性很棒,就是略新了點,而且加入了可編程渲染模式,十分高端大氣,雖然我暫時用不著,萬一以后要用呢。
HDRP是Unity官方想推廣的新版本渲染管線,其實兼容性也不錯,可惜聽說樂意嘗試這玩意的人還比較少,教程更是少得可憐,其實可以用,但就得會找資料,我很懶所以告辭。
然后等工程創(chuàng)建完畢,在菜單欄里點擊Window--Package Manager,安裝Entities、Entities Graphics和Unity Graphics,如果已經安裝了那就跳過。
至此,Unity工程創(chuàng)建完成。

然后是前后端分離,為什么要做這種東西?因為我覺得一個合格的游戲邏輯核心不能完全依賴于某一個引擎,然后既然核心都抽出來了,那做個聯機服務器也不過分吧?如果加上多人支持是挺過分,所以先做單人部分,多人說不定做著做著就知道怎么做了。
按照默認參數新建C#工程,注意,不要勾選【將解決方案和項目放在同一個目錄下】,不然后續(xù)會出問題。
至于工程名,你可以隨便寫,總之第一層是母工程,第二層需要包含兩個解決方案:
1. 共用代碼,新建之后,在解決方案名字上面右鍵--屬性,將目標框架修改為netstandard2.1,輸出類型修改為類庫,語言版本為C# 9.0
2. 服務器代碼,新建之后,請確保輸出類型是【控制臺應用程序】(或者任何你希望的服務器程序形式,總之不能是類庫)
3. unity代碼,無需新建,將unity工程拷貝到根目錄之后,在母工程那一層右鍵--添加--現有項目,選中【Assembly-CSharp】這個解決方案就行,記得添加完就【右鍵--卸載項目】,這玩意就是看著好看的
然后重點來了,我們如何將1和3勾連在一起呢?
在1對應的解決方案上右鍵,進入【構建事件】選項卡,添加構建后命令
copy /y "$(TargetDir)$(TargetName).dll" "..\minecraft-unity\Assets\Scripts\PreCompile\$(TargetName).dll"

然后每次build后,等待unity自動引入后,就可以在unity層調用base庫的邏輯了。

但是這樣就夠了嗎?自然不夠,下一篇專欄我就正式開始寫代碼層面的那些事情。