本次教程,我們來創建一個簡單的Prefab組件。
教程參考自人人素材翻譯組出品的翻譯教程《Unity游戲引擎的基礎入門視頻教程》。
說到Prefab,中文翻譯為預設體,在Unity官方的書本《Unity4.X從入門到精通》中的解釋是:可以理解為是一個游戲對象及其組件的集合,目的是使游戲對象及資源能夠被重復使用。相同的對象可以通過一個預設體來創建,此過程可理解為實例化。
? ? ?存儲在項目文件中(Project視圖)的狀態時,預設體作為一個資源,可應用在一個項目中的不同場景中。當拖動預設體到場景中就會創建一個實例。該實例與其原始預設體的有關聯的,對預設體進行更改,實例會同步修改。Prefab可以提升資源的利用率和開發的效率。
? ? ?好比某個Prefab是我們創建好的一個標準的房間模型,當我們在場景中需要建立另一個房間的時候,不需要我們再手動的將地板,墻,天花板拼接,而是可以直接拖一個Prefab到Scene視圖中,并對這個Prefab進行修改就可以了。
? ? ?下面開始創建我們的Prefab組件。接上一篇教程,現在我們場景內,有三個沒有吻合的模型。如下圖:
接下來我們把分別單擊選中這三部分,并在Inspector視圖中,找到Position,將他們的XYZ坐標都修改為0,0,0,
我們會發現模型會變為下圖這樣。
我們發現MineShaft_Wall中心在墻的中間,所以我們要修改下他的Y坐標。選中墻壁模型,將MineShaft_Wall墻壁模
型的Y坐標改為3就可以了,事實上這個模型墻壁高度為6個單位。
? ? ?這里要注意一下,如果你要單方向移動一個模型,即保持其他兩個坐標值不變只改變一個坐標值,那么你就要按
住坐標系三個方向其中的一個并拖動就可以了。
接下來我們要做的是把現在位于中間的墻壁,移動到一側,并復制幾面墻移動到四周。直接拖動或者修改坐標可能
會產生各種誤差,這里我們采用頂點捕捉(Vertex Snapping)。
? ? ? 我們首先選中我們要移動的物體,然后按下V,我們會發現當我們移動鼠標的時候坐標軸會只在模型中的頂點
停留。如下圖,當你們鼠標挪到左下角的時候,會在左下方的定點出現坐標軸。
這時我們可以單擊鼠標,選中這個頂點坐標軸處的正方形區域(如圖中的黃色小正方形),拖動這個模型,可以讓
這個頂點與下面我們鼠標挪到的另一個頂點結合。如下圖,我選中這個頂點后,將其拖動至地板左下角的頂點上,
讓這兩個頂點相合。這是一個快捷的移動模型的方法。
接下來我們要借用這一面墻復制出另一面墻,并移動位置。我們選中我們剛移動的這面墻體,按下Ctrl+D(Mac下為
Command+D)來復制一下,我們會在Hierarchy視圖下發現多了一個MineShaft_Wall,然后我們采取剛才同樣的方
法,按下V,選取墻體的左下角坐標軸,拖到地板的右下角頂點,我們剛才復制的墻體就到已有墻體的對面。但是
我們前面提到過,我們的墻體不從正面看是看不到的,平移后我們相當于看到的是墻體的另一面,所以這里才會只
有一個坐標系而沒有墻。如果我們稍微向右再挪動一點兒視角,就會看到我們復制出來的這面墻。
如下圖:
圖一:未挪動視角
圖二:挪動視角
我們要做的是把這面墻體旋轉180度。選中這面墻,按下E,激活Rotate工具,坐標軸會發生如下變化:
這里我們按住綠色線確保Y軸角度不便,然后按住CTRL(Mac下按住Command)逆時針方向一直拖動,按住CTRL
是以15度為單位來旋轉,旋轉后我們會發現Inspector視圖中,Y角度變成了-180(有時會是179.99),當然也可以
直接在Inspector視圖額Rotation里面直接修改角度,要確保你修改的坐標軸是正確的。旋轉完成后按W回歸原始坐
標系。
?現在我們開始將這個模型放入一個Prefab組件中。先在Project視圖內,ImportedAssets文件夾內新建Prefabs文件
夾,專門用來放置我們的預設體。
然后進入Prefabs文件夾,右鍵,Create,Prefab,將新建的空的Prefab命名為PFB_Straight。
下面我們將視線移動到Hierarchy視圖中,我們可以看到四個藍色名稱,藍色名稱表明該物體是預設體或者從文件中
拖入到場景內的。現在要把物體放入Prefab中,我們可以發現當這些物體全部選中后是無法拖進我們新建的Prefab
中的。這里我們需要在Hierarchy中創建一個空的游戲物體------菜單欄,GameObject,Create Empty,這樣Hierarchy
中會多出一個空的GameObject。我們對其命名為PFB_Straight,沒錯,和我們的Prefab名字相對應,并且現在這個
object的名稱是白色的。下面我們來為此object與我們的四個物體建立父子關系,并將其導入到Prefab中。
選中全部四個物體,然后拖動到PFB_Straight中,會形成如圖一的父子關系,接下來選中PFB_Straight,并拖入到
Project視圖中我們新建的Prefab中,就完成了Prefab的初步創建,如圖二。
? ? ?圖二中,Hierarchy中物體全部變為藍色,而且我們的Prefab在界面右下角有了預覽,我們可以在預覽中用鼠標
拖動來查看Prefab的內容。
圖一:
圖二:
至此,一個很簡單的Prefab就創建好了,下面我們將這個組件拖入到場景中,我們會發現我們已經可以將我們之前
創建的組件很簡單的假如場景中。這就是Prefab的優點,大大提高了工作的效率。
我們現在可以選中一個組件,按住V,并利用前面提到過的頂點捕捉(Vertex Snapping)來建立一個長長的隧道。
注意要選中整個組件,而不是組件的一部分,不要只把地板或者墻壁移動了,如果移動錯了,記得按CTRL
(Command)+Z來取消操作。大家可以來試試創建一個隧道。
2015.1.1? ? ?0:03
By Mr.Losers