Unity3D 入門:使用 Visual Studio 開發 Unity C# 腳本,說說根目錄的那些 sln 和 csproj 文件

本文介紹 Unity3D 項目根目錄的 sln 和 csproj 文件,你將知道如何正確理解和使用它們。


對於傳統 .NET/C# 的開發者來說,在解決方案中管理 NuGet 包,在 C# 項目中引用 dll 或 NuGet 包是家常便飯。但在 Unity 項目裏面,你可能要改變這一觀念——因爲 Unity 項目裏面實際上並不存在 sln 和 csproj 文件。

等等!那我們在根目錄看到的那些 sln 和 csproj 文件是什麼?

Unity 項目根目錄下的 sln 和 csproj 文件

那只是 Unity 編輯器爲了讓你方便寫 C# 代碼臨時生成給你用的。

默認 Unity 不指定外部腳本編輯器時,會單純打開 .cs 文件而已。而如果指定了 Visual Studio 作爲外部腳本編輯器,那麼再從 Unity 中打開 C# 項目時,將會生成 sln 和 csproj 文件,然後調用 Visual Studio 打開生成的 sln 和 csproj 文件。

打開 C# 項目

設置外部工具

這裏就需要特別注意了:每次點擊 Open C# Project 打開 C# 項目時,都會重新生成 sln 和 csproj 文件,所以實際上你對 sln 和 csproj 所做的任何改動都是無效的!

這樣的設計,有好處也有壞處:

  1. 有了 sln 和 csproj,Visual Studio 將能充分運行代碼分析器,可以在類與其他符號之間跳轉,可以有智能感知提示,可以實時發現編寫中的代碼錯誤(甚至是引用錯誤)。
  2. 但讓 Visual Studio 的各種功能激活後就會讓我們這樣的入門開發者產生誤會,認爲這其實就是 C# 項目,會嘗試真的對這些項目進行可能超出 Unity 功能範圍的修改。

真正在編譯完成放到遊戲中運行的,是 Assets 文件夾中的文件。而外面的 sln 和 csproj 文件,應該加入到 .gitignore 文件中,從版本管理中忽略掉。


我的博客會首發於 https://blog.walterlv.com/,而 CSDN 會從其中精選發佈,但是一旦發佈了就很少更新。

如果在博客看到有任何不懂的內容,歡迎交流。我搭建了 dotnet 職業技術學院 歡迎大家加入。

知識共享許可協議

本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含鏈接:https://walterlv.blog.csdn.net/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章