使用Unity3D3.5也有一段時間了,對於編碼和調試的Integration Environment小結如下:
(1) 編輯代碼使用Visual Studio . 這樣可以使用VA等協助工具輔助,相對MonoDevelop來說高亮也會舒服很多。如果始終使用VS進行代碼編輯的話,也不會注釋上出現中文亂碼的問題,而在MonoDevelop中則會出現亂碼。Unity3D 3.5中可以配置預設開啟的IDE,推薦選擇VS,這樣可以避免3.5版本的一個bug,此bug描述如下:
對於將Visual Studio 2008 安裝在非C盤的開發人員,如果在Unity編輯器中將預設開啟的IDE設為MonoDevelop,那麼將會產生版本號碼為11的sln檔案,導致VS2008無法開啟對應的sln,除非修改sln檔案(使用文本開啟,修改其版本號碼為10即可),但如果有cs檔案增刪,Unity編輯器會產生新的sln檔案,這樣又需要手工修改,煩不勝煩。
解決方案:將Visual Studio 2008安裝到C盤,並且將Unity編輯器的預設指令碼IDE設定為Visual Studio 2008.如果想對程式進行調試,則在Unity編輯器之外將MonoDevelop啟動,再開啟Unity編輯器產生好的sln檔案。
(2) 調試代碼使用MonoDevelop. 將MonoDevelop啟動,開啟編輯器產生的sln檔案,然後將Unity編輯器開啟,可以馬上在MonoDevelop中進行Attach編輯器進程,也可以等編輯器處於GamePlay狀態時進行Attach,都可以。
其實真想某天能看到使用Visual Studio進行代碼編輯和調試,不過目前看起來不太可能,Unity編輯器使用JIT編譯出來的dll是Mono的dll,PDB檔案什麼的,跟微軟的標準很可能不一致。我曾經嘗試過使用Visual Studio編譯出來的dll替換編輯器編譯出來的dll,是能夠正常啟動並執行,因為Mono對.net進行了自己的一套實現。但通過Visual Studio attach編輯器進程,依然無法調試,很可能在PDB那裡出了問題,沒能夠裝載VS產生的PDB。
如果哪位兄台能夠在VS中調試Unity3D,請賜教,不勝感激*^_^*