簡體   English   中英

如何在 Unity(2D)中忽略對象上的碰撞

[英]How to ignore colliding on an object in Unity (2D)

我的游戲中有 5 個對象和 2 個“框架”。 我希望其中 1 個對象與內部框架發生碰撞,但不希望 4 個與另一個對象發生碰撞。 我已將盒子對撞機附加到框架上,並將圓形對撞機附加到 5 個對象上。 我的問題是我不希望 4 個對象僅與外部對象發生碰撞。 我的問題有解決方案嗎?

對於無法解決此問題的任何人:如果您的子對象的碰撞器是觸發器,而您的父對象的碰撞器不是,那么您可以在 OnCollisionEnter 方法中檢查碰撞。 如果您仍然想對其他對撞機做某事,那么您可以在 OnTriggerEnter 方法中進行操作。 這將兩個對撞機分成兩個不同的功能。 這對我有幫助,因為我的子對象是一個觸發器,我希望這個解決方案可以幫助其他人。

這是官方指南中的頁面,它解釋了如何使用碰撞矩陣。 這是解決您的問題的正確方法: https ://docs.unity3d.com/Documentation/Components/LayerBasedCollision.html

基本上,您可以在Edit->Project Settings->Physics下,定義圖層碰撞的規則。 然后,您只需為每個對象分配一個圖層。

對於那些有這個問題的人,似乎如果你的父母有一個 RidgidBody 任何子碰撞器都會觸發碰撞。

我通過為我的孩子添加一個 RidgidBody 解決了這個問題,這避免了來自父母的繼承。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM