Unity進階修煉之路(一)——MonoBehaviour

其實我也不知道自己打算寫一系列Unity相關的教學文章是否有意義。因爲現在網上教學太多了,而我也曾在unity4x的時候,就嘗試寫過,但最後不了了之。現在Unity2017出世,我又萌發了寫這樣一系列文章的念頭。到不是特意想寫個教程,只是想乘這個機會把相關的知識整理下。

好吧,既然沒有想寫成教程,所以不會寫的面面俱到,有些大家都清楚的,或是文檔都有的東西就不會拿來寫了,我會挑一些我覺得有必要拿來說的東西寫一下

(一)MonoBehaviour

MonoBehaviour是unity腳本的基類,我們所編寫的Unity遊戲腳本程序,都是從該類繼承的。算是遊戲中腳本的“老祖宗”了吧(笑)

因此,該類中也提供了大量對腳本進行管理操作的代碼,其中有些是我們比較常用的。升級到2017,又有了一些新的內容。

(1)Disable

凡是從MonoBehaviour繼承下來的腳本都可以在編輯器上選擇啓用,或是不啓用,而如果在繼承的腳本代碼中,沒有實現Awake(),Start(),Update(),FixedUpdate(),LateUpdate(),OnGUI(),OnDisable(),OnEnabled()中的任意一個,那麼編輯器就不會顯示啓用或是不啓用的勾選框。

(2)變量

runInEditMode
這個變量標識我們的代碼是否能在編輯器模式下運行,如果爲true的話,即使我們不點編輯器上的Run按鈕,也是可以執行該代碼的,此時編輯器會通過Inspector來刷新執行。

useGUILayout
這個變量控制繼承的膠板代碼能否跳過GUI的layout階段。如果這個變量爲true,那麼我們寫在OnGUI函數中的代碼都不會被執行。有時候我們喜歡用OnGUI來進行一些調試信息的輸出,但是,OnGUI函數是很消耗系統資源的,使用該變量可以方便的控制調試信息的打開與關閉

(3)靜態方法

print
新增的方法,和Debug.log一樣將信息輸出到Unity的控制檯

Destory和DestoryImmediate
這兩個函數都是銷燬對象,不同的是DestoryImmediate是立刻銷燬對象。後者只能在編輯模式下代碼使用,因爲前者不會在編輯器模式下被執行。而如果是遊戲運行時代碼,則應該使用Destory,Destory會在每一幀中被延遲執行的。需要注意,後者甚至可以刪除asset資源!

GetComponentInChildren和GetComponentsInChildren
這兩個函數都是在子節點上獲取對應的組件,都是按照深度優先算法,前者是返回第一個找到的組件,後者是返回所有的組件。需要注意的是,這兩個函數都是會從當前節點開始尋找,也就是把自己的當前節點也歸位Children節點。

GetComponentInParent和GetComponentsInParent
和GetComponentInChildren相反,從父節點中查找組件,同樣的是,會將自身作爲第一個查找的起點,逐步向上查找

(4)成員

isActiveAndEnabled
這個變量當組件腳本是enable的時候爲true,disable的時候爲false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章