Unity2D碰撞無效問題和基本設定

2021-10-19 21:08:53 字數 1075 閱讀 2039

private void ontriggerenter(collider other)

執行專案後,什麼都沒有發生,我的子彈正常穿過敵人,碰撞檢測沒有生效。作為乙個初學者,首先我想到的是**錯誤,**內容很少,檢測過後沒有任何問題,然後我由仔細檢查元件是否設定錯誤,發現也沒有錯誤,最後我想到我建立的是2d專案,應該用2d相關的元件,於是將上述元件都換成了box collider2d 和rigidbody2d,當我再次執行後,發現還是沒有任何反應,我開啟隨書贈送的3d專案資源資源,執行正常,碰撞也發生了,可見書上的內容正確無誤。可是我想要的2d專案下的碰撞設定問題並沒有解決,昨晚我睡覺前,我還在搜「untiy2d碰撞檢測無效的問題」,突然看到乙個帖子上的一行**上ontriggerenter2d的字樣,恍然大悟,我的元件設定為了適應2d專案的元件,但是**並沒有做相應的修改。(**沒有因為修改兩個元件報錯),於是第二天早上我將上述**做以下替換:

private void ontriggerenter2d(collider2d collision)

執行專案,成功實現我想要的碰撞後銷毀物體的效果。

總結:在unity中2d專案和3d專案所用的碰撞元件有所不同,相關的類和方法也有所不同。2d專案中兩個物體想要實現碰撞,首先為雙發掛上box collider2d元件,根據需求勾選is trigger屬性,然後至少為其中乙個掛上rigidbody2d元件,將body type設定為kinematic,最後也要使用使用2d專案的方法,unity2d很多方法名稱跟3d的基本相同,只是在後面多了2d兩個字元,如果是用vs進行**的編寫,可以在編寫的時候看提示後方有沒有帶2d字元的函式,直接呼叫。下面兩張依次是我在子彈和敵人身上掛的元件。

可能這是乙個很小的問題,但是希望能夠對和我一樣的初學者有所幫助。

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 ...