分類:Unity、C#、VS2015
創建日期:2016-03-31
一、簡介
用VS2015編輯C#腳本時,如果讓其“顯示所有文件”,就會看到VS2015解決方案資源管理器中項目的文件夾結構和Unity的Project下的文件夾結構完全相同:
這樣一來,你就可以在VS2015中直接打開編輯不同的C# 腳本文件了,而且還可以直接創建新的C# 腳本,而不必在Unity和VS2015間來回切換。
1、與Unity的深度集成
如果你仍然不得不一直在Unity編輯器和VS2015之間來回切換,則VS2015 Tools for Unity 就不是一個提升效率的工具了。之所以借助VS2015 Tools for Unity,是因為可以輕松地在無需離開VS2015的情況下保持工作,這是它能提升開發效率的主要原因。
•VS2015中呈現的項目層次結構和在Unity編輯器中顯示的層次結構相同。
•VS2015會自動將來自Unity控制台的輸出顯示在VS2015的錯誤窗口內的右側。
•調試游戲時,無需切換回Unity,只需按F5。
無論是獨立運行還是在Unity編輯器中運行,VS2015強大的調試器都會連接到你的Unity游戲以調試C#腳本和DLL。
• 斷點,包括條件斷點。
• 計算“監視”窗口中的復雜表達式。
• 檢查和修改變量和參數的值。
• 深化到復雜的對象和數據結構。
你甚至可以當Unity游戲在網絡上的另一台計算機上運行時對其進行調試。
2、MonoBehavior向導
在VS2015的.cs代碼編輯器中,將光標放置在你可能要插入方法的位置,然后鼠標右擊選擇【Implement MonoBehaviors】:

此時就會出現下面的選項:

選擇要重載的方法,單擊【確定】按鈕,它就會自動生成對應的代碼。
當你需要重載不熟悉的方法時,MonoBehavior 向導尤其有用。
3、可直接編輯Shader
Unity的 ShaderLab語言的語法着色可幫助你在着色器中的錯誤變成bug之前發現它們。你只需在VS2015中打開並編輯ShaderLab文件。
4、Unity 錯誤列表
連接到 Unity 實例時,可以從 Visual Studio 內部的 Unity 控制台查看消息。 這包括 Unity 中的錯誤和警告。 消息將顯示在 Visual Studio 的“錯誤列表”窗口中;Unity 中的錯誤消息將顯示在“錯誤”選項卡上,警告消息將顯示在“警告”選項卡,而其他消息(比如通過使用 Debug.Log Unity API 發送的消息)將顯示在“消息”選項卡上。
為了查看消息,必須正確配置 Unity 項目以支持腳本調試並導入適用於你的 Visual Studio 版本的 Visual Studio Tools for Unity 包,並且 Visual Studio 必須連接到 Unity。
如果不想在 Visual Studio 的“錯誤列表”窗口中看到 Unity 中的錯誤、警告和消息,則可在“配置”菜單中禁用它們。
二、需要注意的問題
在Unity中使用C#編寫腳本時需要注意以下規則:
1、變量的定義
在Unity中,C#腳本的變量不是用屬性來聲明,而是直接用public、protected、private來聲明該變量可訪問的范圍,格式為:
訪問修飾符 變量類型 變量名;
例如:
public int x = 3;
private string s="abc";
其中,聲明為public的變量會自動顯示在Unity編輯器的Inspector視圖中,並可以在Inspector視圖中直接編輯該變量的值。
此規定僅限添加到游戲對象的C# 腳本類,即從MonoBehauour類繼承的子類中定義的變量,其他類沒有此限制。
2、腳本類必須是MonoBehauour類的子類
凡是需要添加到游戲對象的C# 腳本類,都必須直接或間接地從MonoBehauour類繼承。對於在Unity編輯器中新建的C# 腳本,Unity會自動幫助開發者完成繼承的相關代碼。
不需要添加到游戲對象的C#類沒有此限制。
3、腳本子類不要使用構造函數
對於腳本子類(從MonoBehauour類繼承的類),應該在Start()方法或者Awake()方法中處理初始化的工作,一定不要在MonoBehauour子類中用構造函數做初始化工作,這是因為Unity無法確定何時調用該子類的構造函數。
不是MonoBehauour的子類沒有此限制。
4、腳本類名要和腳本文件名相同
對於從MonoBehauour類繼承的類,類名一定要與腳本文件名相同,否則添加腳本到游戲對象時會提示錯誤。
不是MonoBehauour的子類沒有此限制。
5、靜態變量
建議不要在對象引用中使用靜態變量,以確保未使用的對象能夠從內存中刪除。