Unity橫版2D游戲學習實例(02)- Sorting Layer分層&添加角色&碰撞體和剛體


一、使用Sorting Layer對圖像分層

在Unity中,2D的界面中一旦放入多個圖像就需要對這些圖像進行分層,以此區分哪個圖顯示在前哪個圖顯示在后。分層設置一般在Render(渲染器)的組件中Sorting Layer屬性中設置。

這里我們在Sorting Layer中添加一些圖層方便對以后加入游戲的圖像進行分層。


添加Sorting Layer的兩種方式

1.在工具欄Edit -> Project Settings -> Tags and Layers -> Sorting Layers中添加

 

2.隨便選擇一個有Render組件的游戲對象,在檢查器Inspector中,選擇Render組件下拉選擇Add Sorting Layer

如圖這里添加了5個層,Background、Environment、Platforms、Player、Foreground。在Sorting Layers中越下面的Layer顯示越前。而同Sorting Layer時,Order In Layer數值越大越前。

(小技巧:新加到游戲中的圖像為Default默認層,這里可以把Default層放在移到了最下面,這樣一來添加的新圖像會顯示在最前面,方便我們調整。)

 

順便設置一下游戲中已有的圖像的圖層,背景back -> Background,地面Tilemap  -> Platforms

 

二、添加角色

在下圖位置找到我們的角色Fox,把它拖到Hierarchy窗口中改名為Player,然后給它設置Sorting Layer -> Player
(如果之前在Sorting Layers中把Default移到了最下面,那么它就會顯示在最上面,否則剛放入游戲中時可能會被背景擋住看不到)

 

三、碰撞體Collider和剛體Rigidbody設置

在游戲中判斷兩個“圖像”是否接觸,需要設置碰撞體Collider,而剛體Rigidbody則是賦予質量、速度、重力等物理特性。

1.在Hierarchy中選中Player 或 在Sence窗口中選中Player,在其Inspector窗口最下面選中添加組件 Add Component,添加一個碰撞體 Box Collider 2D,剛體 Rigidbody 2D。

 

2.選中Tilemap在其Inspector窗口最下面選擇Add Component,添加一個Tilemap碰撞體 Tilemap Collider 2D。

 

3.調整Player的碰撞體

在Collider組件中選中Edit Collider,物體上就會顯示 可編輯的碰撞體邊界,拖拽這些邊界可以調整碰撞體Collider的范圍。如下圖

 

另外也可以通過Offset,Size屬性直接修改碰撞體Collider的邊界(這里設置了一個合適的數值,方便之后控制)

 

4.調整Tilemap的碰撞體

Tilemap的碰撞體比較特殊,因為Tilemap是我們一塊塊“畫”上的,所以當選中Tilemap時我們能看到每塊Tilemap都有一個碰撞體

 

這里我們可以通過Used By Composite屬性來把他們合為整個碰撞體。

添加完Composite Collider 2D后,地圖的碰撞體就變成了一整塊了。

 

5. 調整剛體Rigidbody

當Tilemap添加了Composite Collider 2D后,會自動添加一個Rigidbody 2D,需要把Body Type設置為靜態Static,否則地面會掉下去。

 

同時也需要在Player的Rigidbody上修改一些設置,選擇下圖選項

如此一來,運行游戲后我們可以看到角色穩穩的落在了地面上。接下來就要開始進行代碼編寫了。

 

相關屬性介紹

Collision Detection (碰撞檢測),用於控制避免高速運動的游戲對象穿過其他的對象而未發生碰撞。

(1)Discrete(離散):對場景中的所有其他碰撞體 (Collider) 全部使用離散 (Discreet) 碰撞檢測。該項為默認值。

(2)Continuous (連續):對剛體 (Rigidbody) 進行碰撞測試時,對帶有剛體的動態碰撞體 (Collider) 使用離散 (Discreet) 碰撞檢測;對不帶剛體的靜態網格碰撞體 (static Mesh Collider)使用連續 (Continuous) 碰撞檢測。

Interpolate (插值處理),用於控制剛體運動的抖動情況。

(1)None:不應用插值。

(2)Interpolate:內插。變換(Transform) 基於上一幀的變換 (Transform) 進行平滑處理。

(3)Extrapolate:外插。變換 (Transform) 基於下一幀的估計變換 (Transform) 進行平滑處理。

Constraints (約束),對剛體 (Rigidbody) 運動的限制。這是2D游戲,所以需要把游戲中運動的物體(如:玩家,敵人)Z軸凍結

 

Unity橫版2D游戲學習實例(03)- 角色移動跳躍下蹲&射線檢測判碰撞


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM