Unity-創(chuàng)建和使用腳本
游戲?qū)ο蟮男袨橛筛郊拥腳_組件__控制。雖然 Unity 的內(nèi)置組件可能用途很廣泛,但是您很快就會發(fā)現(xiàn),必須超越組件可提供的功能來實現(xiàn)自己的游戲功能。Unity 允許使用__腳本__來自行創(chuàng)建組件。使用腳本可以觸發(fā)游戲事件,隨時修改組件屬性,并以所需的任何方式響應(yīng)用戶的輸入。
Unity 本身支持 C# 編程語言。C#(發(fā)音為 C-sharp)是一種類似于 Java 或 C++ 的行業(yè)標(biāo)準(zhǔn)語言。
除此之外,許多其他 .NET 語言只要能編譯兼容的 DLL,就可以用于 Unity;請參閱此處以了解更多詳情。
學(xué)習(xí)編程藝術(shù)以及這些特定語言的用法超出了本簡介的范圍。但是,許多書籍、教程和其他資源介紹了如何使用 Unity 進行編程。請參閱我們網(wǎng)站的學(xué)習(xí) (Learning) 部分以了解更多詳細(xì)信息。
創(chuàng)建腳本
與大多數(shù)其他資源不同,腳本通常直接在 Unity 中創(chuàng)建??梢詮?Project 面板左上方的 Create 菜單新建腳本,也可以通過從主菜單選擇?Assets > Create > C# Script?來新建腳本。
此操作將在 Project 面板中選擇的任何文件夾內(nèi)創(chuàng)建新腳本。新腳本文件的名稱將處于選中狀態(tài),提示輸入新名稱。

最好在此時輸入新腳本的名稱而不是稍后編輯名稱。輸入的名稱將用于在文件中創(chuàng)建初始文本(如下所述)。
腳本文件的剖析
雙擊 Unity 中的腳本資源時,將在文本編輯器中打開此腳本。默認(rèn)情況下,Unity 將使用 Visual Studio,但可從 Unity 的偏好設(shè)置(選擇?Unity?>?Preferences__)中的?External Tools__ 面板選擇所需的任何編輯器。
該文件的初始內(nèi)容將如下所示:
為了連接到 Unity 的內(nèi)部架構(gòu),腳本將實現(xiàn)一個類,此類從稱為?MonoBehaviour?的內(nèi)置類派生而來??梢詫㈩愐暈橐环N藍(lán)圖,用于創(chuàng)建可附加到游戲?qū)ο蟮男陆M件類型。每次將腳本組件附加到游戲?qū)ο髸r,都會創(chuàng)建該藍(lán)圖定義的對象的新實例。類的名稱取自創(chuàng)建文件時提供的名稱。類名和文件名必須相同才能使腳本組件附加到游戲?qū)ο蟆?/p>
然而,必須注意在類中定義的兩個函數(shù)。Update?函數(shù)是放置代碼的地方,用于處理游戲?qū)ο蟮膸?。這可能包括移動、觸發(fā)動作和響應(yīng)用戶輸入,基本上涉及游戲運行過程中隨時間推移而需要處理的任何事項。為了使 Update 函數(shù)正常運行,在進行任何游戲操作之前,通常需要確保能夠設(shè)置變量、讀取偏好設(shè)置以及與其他游戲?qū)ο蠼⑦B接。在游戲開始之前(即第一次調(diào)用 Update 函數(shù)之前),Unity 將調(diào)用?Start?函數(shù);此函數(shù)是進行所有初始化的理想位置。
有經(jīng)驗的程序員可能會驚訝于沒有使用構(gòu)造函數(shù)來完成對象的初始化。這是因為對象的構(gòu)造由編輯器處理,不會像您可能期望的那樣在游戲運行過程開始時進行。如果嘗試為腳本組件定義構(gòu)造函數(shù),將會干擾 Unity 的正常運行,并可能導(dǎo)致項目出現(xiàn)重大問題。
控制游戲?qū)ο?/h1>
如上所述,腳本只定義了組件的藍(lán)圖,因此在將腳本實例附加到游戲?qū)ο笾埃粫せ钊魏未a。為了附加腳本,可將腳本資源拖動到層級視圖面板中的游戲?qū)ο?,或拖動到?dāng)前選定游戲?qū)ο蟮臋z視面板。Component 菜單上還有一個 Scripts 子菜單,其中包含項目中可用的所有腳本,包括自定義的腳本。腳本實例看起來很像檢視面板中的所有其他組件:

附加腳本后,按 Play 并運行游戲時,腳本將開始工作??梢酝ㄟ^在 Start 函數(shù)中添加以下代碼來檢查此狀態(tài):
Debug.Log?是一個簡單的命令,只是將消息輸出到 Unity 的控制臺。如果現(xiàn)在按 Play,應(yīng)該會在 Unity Editor 主窗口底部以及 Console 窗口(菜單:__Window__ >?General?> __Console__)中看到此消息。