【Unity】2.10 利用VS2015編輯Unity的C#腳本


分類:Unity、C#、VS2015

創建日期:2016-03-31

一、簡介

用VS2015編輯C#腳本時,如果讓其“顯示所有文件”,就會看到VS2015解決方案資源管理器中項目的文件夾結構和Unity的Project下的文件夾結構完全相同:

image

這樣一來,你就可以在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】:

image

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

image

選擇要重載的方法,單擊【確定】按鈕,它就會自動生成對應的代碼。

當你需要重載不熟悉的方法時,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、靜態變量

建議不要在對象引用中使用靜態變量,以確保未使用的對象能夠從內存中刪除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM