Unity C# | Layers

更新於 發佈於 閱讀時間約 3 分鐘

前言

  這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。

Layers | 圖層

  如果你是一名設計師,那你一定知道圖層是什麼,如果你不是,圖層是一種分類不同物件的透明片,就像蓋上一片片透明板一樣,圖層上面的圖案彼此不會互相影響,但有先後次序。

相機射線

  在 Unity 中,射線是相機運作的一個重要機制,而我們可以把物件放置在不同的圖層中,再讓相機忽略某些圖層的物件,在遊戲設計中,可以藉由切換相機達到許多神奇的效果。

物理射線

  在遊戲程式的範疇中,我們會使用物理射線偵測某些物體,在這之中可以設定忽略某些圖層,或是確保打到某一個圖層後回傳,物理射線能抓取射中遊戲物件的資訊,配合圖層達到許多有趣的效果。

碰撞偵測

  在遊戲程式的範疇中,我們會使用碰撞體 (Collider) 來模擬物體之間的碰撞情形,無論是 2D 還是 3D 遊戲,通常都會使用上碰撞體,而圖層能讓某些物體彼此不會互相碰撞,並針對某些物件碰撞。

Layers Setting | 設定圖層碰撞

  在遊戲中實際使用圖層,除了程式設定以外,總共會有兩個地方,一個是專案設置,另一個是遊戲物件的圖層。

Project Setting | 專案設置

  在 Edit → Project Setting → Physics 的最下面,有 Layers 相關的設定可以做調整,其中打勾的部分是圖層彼此是否會互相影響,沒有勾選就會忽略。 

Game Object Layers | 設定遊戲物件圖層

  在每一個遊戲物件中,都有 Layer 的設定可以選擇,同一個物件只能設定一個圖層,玩家可以使用 Add Layer 添加新圖層,總共能設定 32 層,並有一些是官方鎖定的圖層。

範例 | 讓角色穿越世界

  我以我最近設計遊戲的一個環節,稍作改編進行介紹,接下來我們會簡單敘述簡單 2D 平台遊戲,並使用 Layers 讓玩家穿越世界。

Step.1 創建世界

  首先,創建一個新的 2D 專案,創建 Cube 拉成長條放置在螢幕底端,添加遊戲組件 Box Collider 2D 製作地板,依據喜好建立一個角色,無論是官方的素材商店或是單純的一個 Cube 都可以。

Step.2 角色移動

  撰寫角色移動程式,請使用 Rigidbody 相關的角色控制,網路上有許多相關教學,如果沒接觸過 Unity ,可以從簡單的 2D 平台移動跳躍開始,作為學習 Unity 的拋門磚。

Step.3 碰撞阻礙

  添加兩個 Cube,放置在遊戲平台上面,添加遊戲組件 Box Collider 2D 讓他有碰撞體積,控制角色,確認玩家沒辦法穿越這兩個物件。

Step.4 圖層設置

  分別新增兩個不同的 Layer 並修改兩個物件,讓他們具有像異的圖層,打開專案設置(Project Setting),設定圖層物件,讓他們跟自己不會互相碰撞。

Step.5 切換圖層

  在圖層的左邊有數字編碼,這是這個圖層的 ID ,在程式腳本中設置一個按鍵,切換主角圖層,圖層是遊戲物件下,因此會使用 gameObject.Layer,然後直接指定 ID 就可以了。

Step.6 體驗!

  你現在可以體驗切換圖層了,當你按下按鍵,你就可以穿越不同的物件。

後記

  這次在撰寫 Layer 時,因為我製作的是 3D 遊戲,我自己的主角因為父物件下有掛許多子物件,然而切換圖層不會改變子物件的圖層,我卡在這部分卡很久。

即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
106會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
這篇文章將會講述新增造型的種類及簡單介紹。
這篇文章將會講述新增造型的種類及簡單介紹。
這篇文章將會介紹 Probuder ,Unity 官方製作的關卡設計工具。 Probuder | 關卡設計的利器
這篇文章將會介紹一個 Unity 3D 的人物角色和動畫的網站,以及安裝和放置遊戲中的簡易流程。
這篇文章將會介紹 Unity Animatior Edit 參數控制的方法,藉由連結程式腳本和動畫編輯器,讓動畫更靈活的運作。
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
這篇文章將會講述新增造型的種類及簡單介紹。
這篇文章將會講述新增造型的種類及簡單介紹。
這篇文章將會介紹 Probuder ,Unity 官方製作的關卡設計工具。 Probuder | 關卡設計的利器
這篇文章將會介紹一個 Unity 3D 的人物角色和動畫的網站,以及安裝和放置遊戲中的簡易流程。
這篇文章將會介紹 Unity Animatior Edit 參數控制的方法,藉由連結程式腳本和動畫編輯器,讓動畫更靈活的運作。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
遊戲是元宇宙的重要組成部分和試驗場。 在我的構想中,元宇宙可以成為一種綜合應用介面,使人們能夠在三維的環境中,更有效率地完成任務。 想像我們去超市時,自然地掃視貨架找到所需產品。若同樣情形換到網路購物平台,一個貨架的商品可能要分散在多個分頁中。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
網格擴散可以就像剪紙一樣,把紙上想要的部分剪下來。 通過模型的一個點,找到周圍相鄰的點;其他點又能找到周圍相鄰的點,就像水波一樣擴散出去。 許多3D的算法,如裁切、干涉深度偵測等都會用到。
Thumbnail
其他特殊材質調整 Particles Q:大家有沒有發現剛剛葉子是一面有顏色一面透明? A:Unity的渲染只有單面,超奇怪ㄉ啦,他軟體預設就是單面,要改成雙面也行,但會造成電腦負擔,所以只需在想要雙面渲染的物體上賦予即可,不用整個專案都給它。 單面渲染的情形 材質球著色器定義 Sh
Thumbnail
剛剛調了第一層Rendering Mode渲染模式的參數 進入第二層#Opaque渲染參數介紹 搭配教材一起做好ㄌ,先下載檔案樹葉葉葉🌿🌿🌿 解壓縮後把他拖移進去ASSET裡面 點開剛剛LeafPack,找到Mesh>選擇FBX>找到後拖曳到遊戲編輯畫面 部份模型( Fbx&
Thumbnail
材質和貼圖在遊戲開發中扮演著極為重要的角色,其決定了遊戲物件的外觀和表現。 材質(Material)在Unity中定義物體外觀和視覺特性的屬性集合。 包含了物體的顏色、光澤度、透明度、反射率等信息,可以透過調整這些屬性來改變物體在遊戲中的表現形式。舉例來說,可以創建金屬、塑料、木材等不同材質類型
Thumbnail
上次我們完成用Unity 建完一張椅子,還有學習基本變數的應用,那我們就繼續寫更多的腳本來讓物體有更多的ㄅㄧㄢ #一般不會用Unity來建模啦,主要還是要靠其他3D軟體導入 ●Gravity Scale 重力預設為1,是造成物體下墜的主因,可以先調到0。 (Unity有支援負
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
建立幾個變數如下,最上面兩個變數值為清單值 接下來分別設定球1位置到左上角落、設定球2位置到右上角落、設定球3位置到左下角落、設定球4位置到右下角落 當螢幕初始化的時候,設定玩家球的X、Y座標和大小,並將玩家球的初始顏色,設定成(變數_顏色清單)中.....
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
遊戲是元宇宙的重要組成部分和試驗場。 在我的構想中,元宇宙可以成為一種綜合應用介面,使人們能夠在三維的環境中,更有效率地完成任務。 想像我們去超市時,自然地掃視貨架找到所需產品。若同樣情形換到網路購物平台,一個貨架的商品可能要分散在多個分頁中。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
網格擴散可以就像剪紙一樣,把紙上想要的部分剪下來。 通過模型的一個點,找到周圍相鄰的點;其他點又能找到周圍相鄰的點,就像水波一樣擴散出去。 許多3D的算法,如裁切、干涉深度偵測等都會用到。
Thumbnail
其他特殊材質調整 Particles Q:大家有沒有發現剛剛葉子是一面有顏色一面透明? A:Unity的渲染只有單面,超奇怪ㄉ啦,他軟體預設就是單面,要改成雙面也行,但會造成電腦負擔,所以只需在想要雙面渲染的物體上賦予即可,不用整個專案都給它。 單面渲染的情形 材質球著色器定義 Sh
Thumbnail
剛剛調了第一層Rendering Mode渲染模式的參數 進入第二層#Opaque渲染參數介紹 搭配教材一起做好ㄌ,先下載檔案樹葉葉葉🌿🌿🌿 解壓縮後把他拖移進去ASSET裡面 點開剛剛LeafPack,找到Mesh>選擇FBX>找到後拖曳到遊戲編輯畫面 部份模型( Fbx&
Thumbnail
材質和貼圖在遊戲開發中扮演著極為重要的角色,其決定了遊戲物件的外觀和表現。 材質(Material)在Unity中定義物體外觀和視覺特性的屬性集合。 包含了物體的顏色、光澤度、透明度、反射率等信息,可以透過調整這些屬性來改變物體在遊戲中的表現形式。舉例來說,可以創建金屬、塑料、木材等不同材質類型
Thumbnail
上次我們完成用Unity 建完一張椅子,還有學習基本變數的應用,那我們就繼續寫更多的腳本來讓物體有更多的ㄅㄧㄢ #一般不會用Unity來建模啦,主要還是要靠其他3D軟體導入 ●Gravity Scale 重力預設為1,是造成物體下墜的主因,可以先調到0。 (Unity有支援負
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
建立幾個變數如下,最上面兩個變數值為清單值 接下來分別設定球1位置到左上角落、設定球2位置到右上角落、設定球3位置到左下角落、設定球4位置到右下角落 當螢幕初始化的時候,設定玩家球的X、Y座標和大小,並將玩家球的初始顏色,設定成(變數_顏色清單)中.....