Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 检查碰撞2D,不带刚体2D_Unity3d_Unityscript_Unity3d 2dtools_Unity5 - Fatal编程技术网

Unity3d 检查碰撞2D,不带刚体2D

Unity3d 检查碰撞2D,不带刚体2D,unity3d,unityscript,unity3d-2dtools,unity5,Unity3d,Unityscript,Unity3d 2dtools,Unity5,所以在我的场景中有很多正方形(大约200-300)。它们移动了一点,不需要互相遮挡。计算机很难将Rigidbody2D添加到它们中。我试图在脚本中的每个对象和代码OnCollisionInter2D上添加BoxCollider2D和Mesh Colliders,但它就是不起作用凸面网格碰撞器不工作(我想是二维的,为什么?)。那么,如果不使用刚体,我如何处理它呢?使用冲突R2D的方法是否错误 编辑: 首先,我很抱歉我的英语不好 第二,我要感谢你们所有人的回答。这些都是很好的参考资料,我会花很多时间

所以在我的场景中有很多正方形(大约200-300)。它们移动了一点,不需要互相遮挡。计算机很难将
Rigidbody2D
添加到它们中。我试图在脚本中的每个对象和代码
OnCollisionInter2D
上添加
BoxCollider2D
Mesh Colliders
,但它就是不起作用<代码>凸面网格碰撞器不工作(我想是二维的,为什么?)。那么,如果不使用
刚体
,我如何处理它呢?使用冲突R2D的方法是否错误

编辑:

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

第二,我要感谢你们所有人的回答。这些都是很好的参考资料,我会花很多时间深入研究。 我已经找到了答案,是的。在

中有一个很好的例子/教程,“计算机很难将Rigidbody2D添加到它们中。”你的意思是它有性能成本吗


刚体用于检测碰撞。你不需要碰撞的两边都有一个刚体。例如,如果场景中有100个正方形作为障碍物,则如果玩家对象(例如,球的圆)具有刚体组件,则可以发生碰撞。在本例中,球需要CircleCollider2D+Rigidbody2D,障碍物只需要BoxCollider2D。

您应该使用长方体碰撞器而不是网格碰撞器。通过这种方式,您可以获得更高的性能。应该检查碰撞器的“Is触发器”属性。刚体组件的“是运动学的”属性也应该检查。这样,场景中的所有游戏对象都会相互碰撞


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

当有很多实体交互时,如果您只想知道碰撞情况,您可以实现自己的算法,如。有一个很好的例子/教程,pd。我不知道OnCollisionInter2D是否使用这种方法哦,非常感谢!这正是我想要的:)是的,如果我只添加大约80个
Rigidbody2D
,场景的加载速度会非常慢。游戏不需要支持物理2D。如果只有碰撞部分的一侧,物理也可以工作。对于2D,所有碰撞器都必须具有“2D”后期修复。因为Unity的2D物理引擎是Box2D,3D物理引擎是PhysX,所以不能混合效果(例如,刚体2D不会与球体碰撞)。