Unity3d之組件Component

http://blog.csdn.net/gyaping/article/details/7735667


 沒想到插入圖片這麼麻煩,我都是直接插入在word文檔中的,如果一個一個這麼插入,累不死也得煩死了。因爲還在不停地修改,等基本成形之後,再共享word文檔好了。下面很多有圖片的地方沒顯示出來。

說明:

本系列內容全部原創,包括課程整體架構,也跟其他所有教程不同。

如需轉載請註明:轉載自葛亞平

1、 組件及組件的創建

組件(Component)是用來綁定到遊戲對象(Game Object)上的一組相關屬性。本質上每個組件是一個類的實例。常見的組件有:MeshFilter、MeshCollider、Renderer、Animation等等。

其實不同的遊戲對象,都可以看成是一個空的遊戲對象,只是綁定了不同的組件。比如:Camera對象,就是一個空對象,加上Camera、GUILayer、FlareLayer、AudioListener等組件。其他對象綁定的組件,可自行觀察。

到底有哪些組件呢?可以說有無數種組件,只是有一些特別常用的,被Unity3d預先弄好了。可以通過Component菜單來查看,比如:

此處只列出兩個子菜單中的組件,還有其他預設組件,可以自行查看。

 

 

2、 組件的使用

組件的目的是爲了控制遊戲對象,通過改變遊戲對象的屬性,以便同用戶或玩家進行交互。不同的遊戲對象可能需要不同的組件,甚至有些需要自定義的組件才能實現。

 

a)        組件的添加

                       i.             手工添加

                     ii.             代碼添加

 

b)       組件的刪除

                       i.             手工刪除

                     ii.             代碼刪除

 

3、 自定義組件

有時我們想要的功能,Unity3d沒有預設,這就需要我們在腳本中實現了。爲了更好的模塊化,一般是寫在不同的類中,也就是以自定義組件的形式出現。

如果想自定義自己的組件的話,非常簡單,只需要在項目中創建一個類即可。在項目中創建的類會默認繼承自Monobehavior類。繼承這個類的方法都可以綁定到遊戲對象上。如果想給這個類,也就是我們創建的組件添加一些屬性的話,只需要在類中聲明公開的字段即可。

 

示例1:實現一個旋轉組件。並綁定到遊戲對象上。

創建一個RotateSelf類,在其Update中寫上旋轉語句

transform.Rotate(Vector3.rightTime.deltaTime);

保存後,把該腳本拖拽到一個cube上,然後運行。

 

我們創建的類,會自動在Component->Scripts子菜單中出現,默認顯示的是文件名。請自行查看和試驗,比如現在創建一個類,然後在Component->Scripts中查看。

如果覺得這樣顯示不方便的話,可以在自行創建的組件類中,添加一個AddComponentMenu的特性,比如添加一個相機處理的組件:

[AddComponentMenu("Camera-Control/3dsMaxCamera Style")]

顯示如下:


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