在没有Rigidbody2D的情况下检查Collision2D

时间:2015-12-15 23:30:54

标签: unity3d unityscript unity3d-2dtools unity5

所以我的场景中有很多正方形(约200-300)。他们移动了一点,他们不需要互相掩饰。计算机很难向他们添加Rigidbody2D。我尝试在每个对象上添加BoxCollider2DMesh Colliders,并在脚本中添加代码OnCollisionEnter2D,但它不起作用。 Convex MeshColliders不起作用(在2D,我想。为什么?)。那么如何在不使用Rigidbody的情况下处理它呢?这是使用Collider2D的错误方法吗?

编辑:

首先,我很抱歉我的英语不好。

中学我要感谢你们所有人的答案。这些都是很好的参考,我会花很多时间深入研究。 我找到了答案,它是quadtreethis page

中有一个很好的示例/教程

2 个答案:

答案 0 :(得分:1)

"计算机很难为他们添加Rigidbody2D。"你的意思是它有性能成本吗?

刚体用于检测碰撞。你不需要两个碰撞的侧面都有一个刚体。例如,如果场景中有100个方格作为障碍物,如果您的玩家对象(例如圆球作为球)具有Rigidbody组件,则可能会发生碰撞。在这个例子中,球需要CircleCollider2D + Rigidbody2D,障碍只需要BoxCollider2D。

答案 1 :(得分:0)

你应该使用盒子对撞机而不是网格对撞机。通过这种方式,您可以获得更多性能。而且你的对手"是触发器"应该检查财产。刚体组件"是运动的"属性也应该检查。通过这种方式,场景中的所有游戏对象都会相互冲突。

OnTriggerEnter2D()函数可以帮助您捕捉场景中游戏对象之间的碰撞检测。