Unity3D開發:Unity3D中的腳本概述
和其他的3D軟件一樣,Unity3D作為一個類播放器的3D集成軟件,具有良好的時間層級關系。比如Start()里面的語言,總是在播放器初始化時執行一次,而后就不再執行。例如下面用JS寫的一個例子。在菜單欄上選中 ——>
——>
,將下面這段代碼拖拽給Hierarchy【層次清單欄】中任意一個對象。
您就會在播放器剛開始播放的時候,在左下角的控制臺面板中看到 這句話,證明您的Game播放器已經開始工作了。如圖5.1所示:
圖5.1
(注:這個控制臺買那般以后在大家使用的時候會經常用到它,因為它可以用作您代碼片段的調試,以及您程序出錯了的提示框,詳細的提示您出錯的原因所在。)
當然有了初始化函數,就一定會有刷幀函數Update(),該函數內所有的代碼會在播放器每播放一幀時執行。例如下面用JS寫的一個例子,在菜單欄上選中 ——>
——>
,輸入如下代碼:
該代碼會在播放器每播放一幀的時候,顯示游戲開始到現在所消耗的時間值。
Unity3D中有著非常強大的接口處理功能,您可以在代碼中為對象制定任意一個空接口用于和對應類型的對象進行交互,例如下面用JS寫的一個例子,在菜單欄上選中 ——>
——>
,輸入如下代碼:
該代碼為對象添加了一個在Z軸方向上的初始速度,如果在沒有其他外力的作用下,物體將一直沿著Z軸方向以5的速度運動。并且當您將這段代碼拖拽給一個物體對象后,它的這個初始速度可以作為一個接口在它的屬性面板中進行修改。如圖5.2所示:
圖5.2
除了數字作為接口外,接口還可以是對象,例如下面用JS寫的一個例子,在菜單欄上選中 ——>
——>
,輸入如下代碼:
您可以將這段代碼拖拽給Hierarchy【層次清單欄】中任意一個對象,因為它在這里定義了一個Transform類接口對象cubeGO,所以它幾乎與拖拽的對象無關。拖拽成功之后來到該物體的屬性面板中,您可以看到這樣一個屬性卷展欄 ,cubeGO的后面有個很明顯未定義對象填寫欄
,然后我們把想要使之運動的物體拖拽到這個上面來,當我們運行游戲時,只要按下“G”鍵就可以看到被拖拽的物體作為“cubeGO”的指代對象,朝著Z軸方向運動了。
Unity3D中的C#Script編程的注意事項
也許您在學習Unity3D之前,已經是一位C#的編程高手了。但在Unity3D中的C#并不像真正的C#那般強大,在Unity3D的C#中必須全部繼承自MonoBehaviour。下面為一段C#Script的完整代碼:
除此之外它不支持空間命名,但官方說他們很有可能會在以后的版本中支持這一功能。
在Unity3D中,JavaScript和C#Script的編程效果近乎一樣。只是為了不同程序愛好者設立了不同的編程模式。并且JavaScript所編寫的代碼對象可以和C#Script編寫的代碼對象交叉使用,并不發生任何沖突。
修改MonoDevelop編輯器為Unity3D的默認編輯器
通常情況下Unity3D默認的編輯器都是“UniSciTE”,它用起來十分輕巧快捷,就像記事本一樣。
但如果要開發一些大型的項目, 顯然“UniSciTE”簡單的功能就不足以支撐它的工作了。但如果您每次在編輯腳本的時候,都去用“MonoDevelop”一個個的打開,又會顯得很 麻煩。所以我們就要在Unity3D中做一些設置,讓“MonoDevelop”成為默認的腳本編輯器。具體的步驟是:在菜單欄中找到 ——>
,在彈出的
對話框中找到
并將它后面的下拉框選中為
,瀏覽到我們“MonoDevelop”可執行文件存放的地方。這個路徑一般都和您的Unity3D文件夾在一起。
設置好之后,重新再Unity3D中點選腳本文件,就會發現已經能用“MonoDevelop”軟件打開了,但一次打開的時候會稍顯慢一點,因為“MonoDevelop”需要加載很多東西。
當然,如果您是一個C#和Visual Studio忠實的編程愛好者,您也可以用同樣的方法來設置Visual Studio軟件的路徑,讓Visual Studio成為您Unity3D腳本的默認編輯器。