Unity3D基(ji)礎(chu)—基(ji)本(ben)物體(ti)和基(ji)本(ben)組(zu)件介紹(shao)
時間(jian):2018-09-28 來源:未知
Unity3D是一個基于組件(Component)編程的(de)游戲(xi)引擎。而且Unity3D本身的(de)類(lei)(lei)非常多,類(lei)(lei)的(de)結構(gou)圖如(ru)下:

由上圖可以看出(chu)Unity中(zhong)的(de)所有類(lei)(lei)都繼(ji)承于Object,而Unity中(zhong)只分了兩(liang)個(ge)種類(lei)(lei),一個(ge)是(shi)GameObject和(he)一個(ge)Component,而Component的(de)派(pai)生類(lei)(lei)包含(han)了Unity中(zhong)所有類(lei)(lei),Unity3D面向組件編(bian)程的(de)思想略見一斑。
在(zai)Unity中(zhong),在(zai)Scene中(zhong)所有物體都稱之為GameObject,區(qu)別不(bu)(bu)同(tong)(tong)的GameObject就需(xu)要看(kan)不(bu)(bu)同(tong)(tong)的Component。接下來我們分別介紹(shao)不(bu)(bu)同(tong)(tong)組件。
Transform:

現在Unity中創建一個Empty GameObject ,選(xuan)中我(wo)們(men)新建的(de)(de)GameObject,在Inspector視圖中我(wo)們(men)看到如圖的(de)(de)組件 默認帶了(le)一個Transform組件。

Transform組(zu)件包含三個屬性位(wei)置(zhi)(Position),旋轉(Rotation),縮放(Scale),這個組(zu)件是確定我(wo)們的GameObject是在(zai)3D空間位(wei)置(zhi),這個是不(bu)能去(qu)掉(diao)的,否則我(wo)們的GameObject就不(bu)是存在(zai)Scene中的了,雖說Empty GameObject在(zai)場景(jing)中看不(bu)到(dao),但是它確實(shi)是真實(shi)存在(zai)的。
Mesh Filter:
在上面創建的(de)GameObject的(de)Inspector視圖中有個Add Component按鈕,點擊此按鈕添加Mesh Filter然(ran)后選(xuan)點擊Mesh后面的(de)紅框選(xuan)中的(de)按鈕,接下來

我們(men)看(kan)到如下界面

選擇一個(ge)Mesh,在回到Scene中,場景(jing)并(bing)沒有什么變化,接下來(lai)我(wo)們(men)就(jiu)需(xu)要(yao)把我(wo)們(men)的Mesh給(gei)顯示出來(lai)了(le)。
Mesh Renderer:
和上述(shu)步驟一樣,Add Component,選擇Mesh Renderer,返回到(dao)Scene中看(kan)到(dao)會有如(ru)此場景,選擇上面所說的(de)不(bu)(bu)同Mesh,可以看(kan)到(dao)Scene中呈(cheng)現出不(bu)(bu)同的(de)形狀。

在(zai)Unity中(zhong)(zhong),GameObject呈現出這種顏色,一般都是材(cai)(cai)質的缺失。現在(zai)新建(jian)一個材(cai)(cai)質球(Material)在(zai)Project視圖中(zhong)(zhong)點擊Create選擇Material,然后把New Material拖拽給GameObject,場景(jing)顯示(shi)如圖


接下來(lai)我(wo)們通過代(dai)碼來(lai)更(geng)詳(xiang)細了解Transform。
Transform:
默認創建的腳本會繼承MonoBehaviour這個類,下次我(wo)們(men)詳細講解這個類。
編寫(xie)如下簡單(dan)的代碼:

運行(xing)后我們觀察我們GameObject的位置(zhi)(Position)屬性

而(er)Rotation屬(shu)性是一(yi)個四元數,通(tong)過Euler角和Vector3進行轉換(huan),存在一(yi)定的誤差。
接(jie)下(xia)來我們在Update中編寫(xie)代碼(ma)。

我(wo)們(men)可以看(kan)到我(wo)們(men)GameObject在場中旋轉起來了(le)。

Rotate有六(liu)個(ge)重載方法,根據參數(shu)的命名,很容易知(zhi)道每個(ge)參數(shu)的意義。
同(tong)樣位(wei)置(Position)移動的方法(fa)Translate也有類似的重載。

Transform的(de)介紹基本(ben)就是(shi)這樣(yang)了(le),下次再(zai)介紹其他(ta)更炫酷的(de)屬(shu)性吧。

