[ Unity 2D ] 教學 #12 – Layer(層級)

標籤: , , ,

另一個與Tag很像的東西叫做Layer,是層級、階層的意思,在Unity中與Tag有同樣的功能,但是Layer會牽扯到碰撞判定。

Layer的設定方式與Tag一致,位置就在Tag的右邊而已

比較不同的是,程式碼中的layer是int,若要在程式碼中去判斷Layer必須使用數字或著將layer轉換成字串,程式碼如下

if (gameObject.layer == 0)
{

}
if (gameObject.layer == LayerMask.NameToLayer("Default") )
{
    
}

 

將Layer轉換成字串,或著將文字轉換成Layer,可以使用LayerMask的NameToLayer(字串轉數字)函數與LayerToName(轉字串)

 

點擊工具列中Edit->Project Settings->Physics2D 可以設定2D物理

在Physics2D中會看到有個倒三角形,這是不同Layer之間的碰撞設定,若將勾取消掉兩個層級就不會互相碰撞,不會觸發OnCollision與OnTrigger,在製作一些碰撞判定複雜的遊戲時很常要設定這些東西。

例如讓玩家會撞到牆壁,而怪物不會撞到牆壁,就可以將玩家、牆壁、怪物設成3個Layer(A、B、C),A跟B的碰撞勾選、B跟C則不勾選,就能做到這種效果。

 

[ Unity 2D ] 教學 #13 – Camera(攝影機)

 



相關文章

遊戲程式入門 #03 印出訊息,Debug Log、print... 在先前的 #00 Unity腳本建立與HelloWorld! 中有提到 Debug.Log 這個函式,這是用來印出除錯訊息的功能 每個語言都會有類似的功能,用來幫助開發者在開發時進行除錯,或是...
教學 #16 – Sorting Layers(排序圖層) 這一篇是補充Layer篇忘記打的 在寫Layer跟Tag時大家應該都有看到Sorting Layers 這是在2D中用來劃分圖層順序的重要東西 由於Layer大多拿來做碰撞的...
基礎教學 #05 – ClientRpc 遠端呼叫客戶端... ClientRpc是與Command相對的功能,是由「Server」去要求「Client」執行,兩者的撰寫方式是差不多的,只需要在函式前加上,不過函式名稱必須是「Rpc」開頭。 首先我先...
捲動視窗 – Scroll View 這次我們介紹的是UGUI的Scroll View,照字面翻譯就是滾動視窗,也能夠應用在APP上做成滑動視窗 可以從這個地方添加到場景上 添加到場景上後畫面會是這樣 ...