分類:Unity、C#、VS2015 spa
建立日期:2016-04-16 設計
這一節先利用GUI顯示一個簡單的界面(之後還會專門介紹GUI),並解釋如何在VS2015中調試C#腳本。 3d
本節例子的運行效果以下: 調試
有如下方式: code
(1)利用斷點調試。斷點設置和取消的辦法與在控制檯應用程序中利用斷點調試C#代碼的辦法相同。 orm
(2)經過Debug類提供的方法在後臺輸出調試信息。該辦法會直接在VS2015輸出窗口以及Unity的控制檯(Console)中輸出調試信息。 blog
(3)在Unity的播放預覽模式下,直接修改檢視器(Inspector)中顯示的變量的值,觀察不一樣值的效果。 資源
一、運行Unity,新建ch06Demo工程。 get
二、在Project視圖的Assets下添加一個名字爲「6.2」的子文件夾,而後將默認的場景保存到該文件夾下,場景名稱爲「Scene2.unity」。 同步
三、在Assets/6.2文件夾下鼠標右擊添加一個文件名爲ch06_2_1.cs的C#腳本,而後雙擊它在VS2015中打開該腳本,將其改成下面的內容:
using UnityEngine; using System.Collections; public class ch06_2_1 : MonoBehaviour { public int age = 20; private string text = ""; private string myName = ""; void OnGUI() { //用標籤顯示文本 GUILayout.Label(string.Format("你的年齡是:{0}\n", age)); GUILayout.Label("請輸入你的名字:"); //在文本區域中輸入名字 text = GUILayout.TextField(text); //按鈕 if (GUILayout.Button("提交")) { myName = text; } //當myName不爲空的時候,說明咱們已經提交了名字,則顯示名字 if (!string.IsNullOrEmpty(myName)) { GUILayout.Label("提交成功,名字:" + myName); } } }
四、按<Ctrl>+S保存該腳本。
五、切換到Unity,觀察Project下的文件夾,會發現6.2文件夾下有2個文件:
五、在層次視圖中鼠標右擊,添加一個空的GameObject:
六、選中GameObject,以便在檢視器中觀察它。而後將ch06_2_1.cs拖放到檢視器中獲得下面的結果:
這時你就會發現,腳本中聲明爲public的age變量,在GameObject的檢視器視圖中被自動封裝成了Age屬性,並顯示在腳本的下面。
說明:這就是爲何咱們在C#腳本中用小寫字母開頭的age來聲明這個變量,由於Unity會將自動其封裝爲用大寫字母開頭的同名屬性。
六、按【播放】按鈕進入預覽模式,便可看到運行效果:
七、在文本框中輸入名字,單擊【提交】按鈕,就會在界面中的下一行顯示出名字信息。
八、拖放檢視器中【Age】屬性的值(按住鼠標左右拖放),你就會發現該值在場景中也會跟着變化:
九、再次按【播放】按鈕結束預覽模式。
十、切換到VS2015,再要插入代碼處鼠標右擊,選擇【Implement MonoBehabious】,在彈出的窗口中,勾選Start(),以下圖所示:
單擊【OK】,它就會自動在當前光標處添加Start()方法。
十一、將Start()改成下面的代碼:
public void Start() { Debug.Log("Age:"+age); //還能夠輸出下面的分類信息 Debug.Log("普通訊息"); Debug.LogWarning("警告信息"); Debug.LogError("錯誤信息"); }
十二、選擇【Attach to Unity and Play】:
而後單擊它,此時,它就會自動從VS2015切換到Unity,並在Unity的Console選項卡中輸出下面的內容:
固然了,這樣作只是爲了演示如何在VS2015中直接啓動Unity下的播放預覽模式,並在Unity的Console中輸出不一樣級別的信息(通常、警告、錯誤)。在實際的代碼中確定不會這樣作,而是應該根據具體狀況,決定在後臺輸出哪一類的調試信息。
1三、單擊Unity的【播放】按鈕結束預覽模式。
1四、切換到VS2015,結束運行,而後註釋掉Start()方法中的語句,單擊【保存】或者【所有保存】:
好了,經過這個例子,你應該知道如何在VS2015中調試C#腳本了吧。
另外,你也能夠直接在VS2015的解決方案資源管理器中項目的對應文件夾下添加新的C#腳本或者其餘資源,或者建立新的子文件夾(VS2015中項目文件夾的結構和Unity工程中Project下文件夾的結構徹底相同),保存後它都會自動將其同步到Unity的Assets下的對應文件夾中,這個「同步」過程徹底是自動的,你所作的就是「建立」、「編輯」、「保存」。