Unity C# | Layers

更新於 2024/10/13閱讀時間約 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
105會員
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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
C#編程基礎筆記 1. 變量(Variables) - 變量是編程的最基本單位 - 技術上是計算機內存中存儲值的一小部分 - 實際上是一個容器,可以存儲不同類型的信息 - 變量必須有唯一的名稱 - 充當值的佔位符 示例: ```csharp public int Current
Unity 2022 與 C# 程式設計:第一章完整詳細摘要
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
C#編程基礎筆記 1. 變量(Variables) - 變量是編程的最基本單位 - 技術上是計算機內存中存儲值的一小部分 - 實際上是一個容器,可以存儲不同類型的信息 - 變量必須有唯一的名稱 - 充當值的佔位符 示例: ```csharp public int Current
Unity 2022 與 C# 程式設計:第一章完整詳細摘要
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同