在Godot中有四个节点必须要加入collision shape才能使用分别是Area2DCharacterBody2DStaticBody2DRigidBody2DArea2D提供物体检测和响应当有个物体进入它的范围时它会发出信号area_enterCharacterBody2D提供物体检测但没有实际反应所有行为都在代码中实现StaticBody2D是指静态的不会移动的物体它参与碰撞检测但不会因碰撞而移动RigidBody2D这是实现模拟二维物理的节点。你无法控制RigidBody2D但你可以对它施加力重力、冲量 等等物理引擎则计算由此产生的运动。以上节点都继承了CollisionObject2D。CollisionObject2D有一个经常用到的属性就是layer和mask。layer是设置物体的层级默认大家都在第一层mask是用来检测层级。例如在player节点中我将player设置在第五层它可以被处在第一层和第二层的物体扫描到检测到。而这个第五层将在我的关卡转换时起作用下图中我将关卡转换节点的mask设置在第五层也就是说当有一个物体也处在第五层时就会被检测到。mask是扫描对应层的物体layer是接受mask扫描的物体