所以我的场景中有很多正方形(约200-300)。他们移动了一点,他们不需要互相掩饰。计算机很难向他们添加Rigidbody2D
。我尝试在每个对象上添加BoxCollider2D
和Mesh Colliders
,并在脚本中添加代码OnCollisionEnter2D
,但它不起作用。 Convex MeshColliders
不起作用(在2D,我想。为什么?)。那么如何在不使用Rigidbody
的情况下处理它呢?这是使用Collider2D
的错误方法吗?
编辑:
首先,我很抱歉我的英语不好。
中学我要感谢你们所有人的答案。这些都是很好的参考,我会花很多时间深入研究。 我找到了答案,它是quadtree。 this page
中有一个很好的示例/教程答案 0 :(得分:1)
"计算机很难为他们添加Rigidbody2D。"你的意思是它有性能成本吗?
刚体用于检测碰撞。你不需要两个碰撞的侧面都有一个刚体。例如,如果场景中有100个方格作为障碍物,如果您的玩家对象(例如圆球作为球)具有Rigidbody组件,则可能会发生碰撞。在这个例子中,球需要CircleCollider2D + Rigidbody2D,障碍只需要BoxCollider2D。
答案 1 :(得分:0)
你应该使用盒子对撞机而不是网格对撞机。通过这种方式,您可以获得更多性能。而且你的对手"是触发器"应该检查财产。刚体组件"是运动的"属性也应该检查。通过这种方式,场景中的所有游戏对象都会相互冲突。
OnTriggerEnter2D()函数可以帮助您捕捉场景中游戏对象之间的碰撞检测。