Unity C# | Tag和Layer差異與特性 & 抓取Tag物件

2022/02/10閱讀時間約 3 分鐘

前言

  這篇文章會帶你了解Unity中Inspector最基本項目中的Tag&Layer,這兩個差別來自於學習父子物件關係,所以下一篇文章會簡單介紹父子關係,不過這兩篇文章的閱讀順序彼此不影響。
  最近在忙大專生研究計畫,那是科技部給大學生提前撰寫論文的管道,如果申請通過有豐厚的補助金讓你繼續完成論文,寫論文的感覺跟寫技術文章相似又相異,同樣富含邏輯,然而嚴格要求參考資料。
  其實我拖了很久,原本打算等春節結束尋找教授,結果包含春節連續撲空三次,導致我有種不見教授不行的感覺,然而算算時間不開工不行了,一整個超緊張,小小寫幾句發洩一下,希望一切順利。

物件類型:Tag和Layer

用途

  Tag跟Layer是一個更加高效的做法,他屬於Inspector最基本項目中的兩個下拉選單,協助降低耦合姓,以及Unity一些演算的輔助。

Tag

  用Unity以外的方式解釋,在方格子上面有標籤(HsahTag)用來協助讀者搜尋文章,也讓作者的文章更容易被發現,社群軟體上也有類似的作法,而Unity中則是協助查找物件,並判斷對象是否為需要的物件。
  • 為遊戲物件分類。
  • 方便查找遊戲物件。
  • 物件碰撞時的判斷。
  • 在TagMannager沒有限定所定義的數量。
  我的理解Tag是用來判斷物件,像是一個人的職業,可以快速定義好這個職業的名稱,在需要的人下面掛職業的標籤,不像名稱需要「完全正確」。

Layer

  使用其他設計軟體時,常常看到圖層(Layer),用來判斷物件的前後順序,在Unity中Layer除了讓Camera知道那些物件要被繪製外,跟照明、射線等有關。
  • 為遊戲物件分類。
  • 讓Collider了解不同Layer彼此的碰撞關係。
  • 讓Camera指定那些物件要被繪製。
  • 讓Light指定那些物件要被照明。
  • 讓物理射線確認那些物件要被偵測。
  • 在TagMannager有限定32個,前8個預設不可更改。
  基本上,內容我是參考下面這個網站「胡亂說‧隨便寫」,如果希望了解更多內容可以去他的網誌參考,這篇文章主要是做個概述和記錄。

抓取物件Tag物件

01. 遊戲物件(GameObject)抓取
GameObject respawn = GameObject.FindWithTag("...");
02. 遊戲物件(GameObject)清單(list)抓取
GameObject [] respawns = GameObject.FindGameObjectsWithTag("...");
03. 碰撞與觸發(OnColliderEnter/OnTriggerEnter...等等)判斷式
Void OnTriggerEnter(Collider other)
{
  if(other.tag == "..."){}
}

不同Layer碰撞設定

  在Edit→ProjectSetting(倒數第三欄第一個)→Physics2D→最下面,打勾的是兩個Layer彼此會互相碰撞,我在設定子彈碰撞體時有用上。

結尾

  這篇文章算是內容較簡單,知識類型的文章,如果不是太複雜應該差不多這樣的量,Unity本身也不算複雜,就是項目非常多,這也讓我的文章可以寫相對比較久(笑)。
  當我打算在方格子撰寫UnityC#類型時,我已經清楚每一個內容其實都有人寫過了,雖然我印象中台灣的學習資源不多,但肯定有人撰寫過(中文),不過從寫中學,內容參考較多的文章標註出處。
為什麼會看到廣告
96會員
242內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!