iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
自我挑戰組

從零開始學習Unity引擎系列 第 8

unity學習day8—標籤、向量與複製

  • 分享至 

  • xImage
  •  

一.標籤
前面提到了物件的元件很多樣,甚至可以自己添加,但是同樣在“檢查器”欄位的“標籤”和“圖層”卻一直默默無聞。

我就先從“標籤”開始講起,“標籤”顧名思義就是給一個或多個物件定性(標籤是可以重複的),譬如說:單機遊戲中需要一個玩家,玩家又是唯一的,這時就可以給玩家打上“Player”的標籤。如果我想要快速查找玩家的話就可以透過“標籤”來查找,同時我在點擊物件的時候可以透過“標籤”來判斷該物件的性質。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373AgeVQzUz4o.png

至於“圖層”的範圍則是更廣的,它往往代表了一類東西,在後期的碰撞檢測或是相機的拍攝都是需要用到“圖層”。舉個例子,我現在創建一個“平面”、一個“玩家”和四個“敵人”,並且分別打上“ground”、“player”和“enermy”,的標籤,雖然玩家和敵人的標籤不一樣,但是他們都是可以被控制的,只不過一個是被玩家控制,一個是被電腦控制。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373IwbIr8ZTbE.png

這時候我就可以利用“圖層”把這些可以控制的物件歸為一大類,只不過注意“圖層”只能存在32個(編號從0到31)。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373NvaULAsABW.png

同時用“標籤”和“圖層”分類可以讓unity的可讀性更高,而且更方便查找,順帶一提,“圖層”還有一個獨特作用,在攝影機“渲染”下面的“剔除遮罩”可以篩選圖層,也就是可以不顯示某些圖層,這是“標籤”做不到的。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373kSBG1LiziZ.png

二.向量
我們高中的時候學過關於向量的知識,而unity物件的三個方向恰好和向量有關,所以現在先來複習一下關於向量的知識。

  • 向量:同時具有大小與方向的數學或物理量。
  • 純量:用來指只有大小、沒有方向的物理量。
  • 單位向量:大小為1的向量。
  • 單位化:把向量轉換成單位向量
  • 內積:兩個向量相乘,但結果是純量而不是向量(用來算兩向量的夾角)。

在“專案”建立新的C#腳本,命名為“VectorTest”。接下來要介紹的是“Vector3”,這是一個結構體,代表三維的三個方向XYZ(Vector4則是WXYZ),這恰好對應了物件可以移動的三個方向。而Vector3除了可以表達向量之外還能表達別的東西,具體請看下圖中的注釋。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373Kb4DhjhHu3.png

除了自己填入變量外,C#同樣提供了一些靜態的變量,具體看下圖注釋
https://ithelp.ithome.com.tw/upload/images/20250910/20178373hsQTycomUO.png

有了這些知識後就可以做一些向量之間的計算,C#就連計算公式都幫我們準備好了,具體看下圖中的注釋。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373YfEjNoMIGO.png

執行後的結果長這樣,是按照順序的。如果在是不同腳本的話順序可能不會是這樣,想要控制執行順序的話上一篇提供了兩種方法。
https://ithelp.ithome.com.tw/upload/images/20250910/201783732WcARVp8vg.png

三.預製體

建立兩個立方體和兩個球體拼湊成一顆頭,如圖所示。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373XfapXLc5h7.png

乍看之下沒什麼問題,但是一旦我想拖動這顆頭,其他的部分還是會停留在原地,這時候就可以把其他三個物件拖到作為“臉”物件的下面,成為“臉”的子物件。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373TeD1MuYSoK.png

但是又有一個問題,我想批量製造這顆頭的話就只要複製黏貼就好,但是如果我想修改的話又成了一個大問題,要是有100顆頭我不可能一個個去修改。這時候只要把頭從左邊的“階層”拖到右邊的“專案”,讓這顆頭變成一個“預製體”,之後想要編輯頭部只要在預製體中修改就能修改全部的頭部。
https://ithelp.ithome.com.tw/upload/images/20250910/20178373IklCNT6Htc.png


上一篇
unity學習day7--初見腳本
下一篇
Unity學習day9—歐拉角與線條
系列文
從零開始學習Unity引擎12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言