Unity2D中的效應器

2021-08-30 17:32:04 字數 3339 閱讀 6985

unity2d 中有5個以」effector」為組成要素的元件,構成2d遊戲的效應器元件。使用這些元件在無需編碼的情況下可以構建一些特殊遊戲效果,例如: 排斥力、吸引力、浮力、方向力、單向通過等,圖13.4_6 是這5個元件外觀。

以下是我們將要給大家介紹的5大元件,後面筆者會就每乙個元件進行詳述。

下圖13.4_7是官方針對前四種效應器元件給出的演示示意圖,這樣先讓大家有乙個大體的了解。

圖13.4_7 部分精靈效應器元件效果示意圖

這個元件模擬在「點範圍」內,2d的排斥與吸引力效果。 如下圖13.4_8所示,演示效果:當小鳥靠近紅色(下方)箱子時會被一股力彈開,當靠近黑色(上方)箱子時則被一股吸引力吸住無法脫離。

製作步驟:

1: 給下圖「box_repulsive」物件新增「pointeffector2d」元件(屬性視窗add component-->physics2d--> pointeffector2d),其屬性「force magnitude」表示力的大小,正數表排斥力,負數表吸引力。

2:新增pointeffector2d元件後,屬性視窗會報警告資訊。按照系統要求,在對應的2d碰撞體元件中需要勾選「is trigger」與 "used by effector"屬性。

圖13.4_8  point effector 2d 元件設定

這個元件模擬在物體表面2d的方向力,類似表面很光滑或者表面推動力效果(類似現實生活中的颳風)。 如下圖13.4_9所示,演示效果:當小鳥靠近綠色箱子(中間有斜度的併排四個箱子)表面時會被一股力快速推下去,彷彿受到了一種方向力的推動。

製作步驟:

1: 給下圖box_1、box_2、box_3、box_4物件新增「su***ceeffector2d」元件(屬性視窗add component-->physics2d--> su***ceeffector2d),其屬性「speed」表示速度,正數表向右的方向力,負數表向左的方向力。

2:新增su***ceeffector2d元件後,屬性視窗會報警告資訊。按照系統要求,在對應的2d碰撞體元件中需要勾選 "used by effector"屬性。

圖13.4_9  su***ceeffector2d 元件設定

這個元件模擬在「區域內部」,2d的方向力效果。 如下圖13.4_10所示,演示效果:當程式執行後,大量小鳥會被四根大型管道內不同方向的力所推動不斷的向前運動。由於設定的四根管道組成了乙個封閉逆時針的迴圈往復力空間,所以大量小鳥會不斷的逆時針往復無限運動。

製作步驟:

1: 給下圖pipe_1、pipe_2、pipe_3、pipe_4物件新增「areaeffector2d」元件(屬性視窗add component-->physics2d--> areaeffector2d),其屬性「use global angle」表示全域性角度建議勾選,「force angle」表示力的角度(0:右方、90:上方、180:左方、270下方),「force magnitude」表示力的大小。

2:新增areaeffector2d元件後,屬性視窗會報警告資訊。按照系統要求,在對應的2d碰撞體元件中需要勾選「is trigger」與 "used by effector"屬性。

圖13.4_10  areaeffector2d 元件設定

這是乙個構建「方向通過性」元件,詳細說就是2d精靈關於某個角度的可通過性。 如下圖13.4_11所示,演示效果:當小鳥靠近不同2d物件時,其可通過性都不一樣。

1>:左上角「landsky1」物件只能從下往上通過。

2>:左下角「landsky2」物件只能從上往下通過。

3>:中間「box1」物件左邊沿無法通過,其他三個方向均可。

4>:右邊「box2」物件只有右下角方向可以通過,其他三個方向無法通過。

結合圖13.4_11左邊的扇形區域,我們就可以總結規律是: 凡是在弧度之內的2d物件邊沿都不能通過,反之可以通過。

以左上角「landsky1」物件為例,敘述製作步驟:

1: 參考圖 13.4_12所示,給「landsky1」新增「platformeffector2d」元件(屬性視窗add component-->physics2d--> platformeffector2d)。其屬性「rotational offset」表示角度偏移量,填入-90(單位為「度」,表示-90角度)。確認勾選 「use one way」。屬性「su***ce arc」填入 180,表示表面180度之內阻止通過。

2:新增pointeffector2d元件後,屬性視窗會報警告資訊。按照系統要求,該物件必須存在2d碰撞體元件,且需要確認勾選了"used by effector"屬性。

圖13.4_11  platformeffector2d元件方向通過性演示場景

圖13.4_12  platformeffector2d元件重要引數

這是浮力效應器元件,模擬2d世界的湖泊與河流等。演示效果:執行程式後,上空大量木箱在重力的作用下紛紛往下掉落,當落在水面上的木箱因為有的質量大有的質量小(注: 通過rigibody 2d 的「mass」屬性調節物體質量)的緣故,部分木箱漂浮水面,部分逐漸下沉。如下圖13.4_13所示。

製作步驟:

1: 給下圖「water」物件新增「buoyancy effector2d」元件(屬性視窗add component-->physics2d--> buoyancy effector2d),其屬性desity 表示水的密度,填入數值2。 su***ce level 表示水面的高度。damping 中linear drag/angular drag 分別表示水面的線性與角阻力,填入5。flow angle /flow magnitude 等數值表示水流的角度與大小,填入一定數值後,水中的木箱等物件會隨著「水流」而沖走。

2:新增buoyancy effector2d元件後,屬性視窗會報警告資訊。按照系統要求,在對應的2d碰撞體元件中需要勾選「is trigger」與 "used by effector"屬性。

Unity2D 渲染層級

渲染層級 camera 攝像機 depth 值越高物體越在上面 在同乙個camera中 sorting layer 越在下面的sorting layer 越在上面 例如 player 層物體顯示在default層物體的上面 最後 order in layer 誰的數值大,誰在上方 一般設計思路 第一...

Unity2D動畫繫結

這次做了乙個unity的2d動畫,記錄一下,怕下次忘了怎麼做。首先是先決條件,推薦使用unity2019.2或更高版本,安裝 2d animation 和 2d psd importer 包。官方文件 資源檔案需要 psb 格式,直接使用ps另存為psb格式就可以了。我是線在手機上隨便畫了乙個,然後...

unity2D關節筆記

distance joint 2d 距離關節 重複部分不重覆記錄 用來限制兩物體的距離,可以根據其物理特性做旋轉運動。擺錘 enable collision 被關節連線的兩個物體是否能相互碰撞。connected rigid body 附加關節的物體所要連線的另一物體。auto configure ...