CharacterBody2D的这两个属性实际上是来自CollisionObject2D的`collision_layer`(碰撞层,下文简称layer或层)和`collision_mask`(碰撞掩码,下文简称mask或掩码)。 layer指的是该物件“所在”的层。mask指的是该物件要“扫描”(检测)的层。文档中总结地很好,引用之: 物件A可以检测到和物件B发生接触,当且仅当B位于任...
Layer 即图层,在代码中为collision_layer,它表示物体所处的碰撞图层,一个物体一般处于一个图层中 Mask 即掩码,在代码中为collision_mask,它表示当前物体所**关心的其他**的碰撞图层,可包含多个图层 碰撞图层很好理解,类似PhotoShop/GIMP/Krita这些图片处理软件中的图层概念,用于把不同的内容分离开来,游戏中碰撞节点一...
17.Collision.Layer层级是当前对象所在的物理层,Collision.Mask层级是当前对象扫描碰撞的物理层 18.如果用C#开发,信号方法不能自动生成,期间连接信号报错估计是引擎内部引用检查问题,重新构建后报错就会消失 todo:可以考虑写个自动生成工具,依据当前节点定义一套命名规则,自动创建信号实例挂载在当前节点类,专门用作信号连接...
Collision Layer 碰撞层 节点自身所处的碰撞层 一个节点可以同时位于多个不同的碰撞层上,也可以不处于任何碰撞层 Collision Mask 碰撞遮罩/碰撞掩码 当前节点能够和哪些碰撞层的对象相碰撞 实际应用最好命名碰撞/遮罩层,而不是使用默认的数字标识 场景 创建敌人 ...
CollisionL..对CollisionObject2D使用set_collision_layer_valve(int,bool)方法。可以在编辑器内用“搜索帮助”查找“collision”找到相关方法后者是Circle
Layer 即图层,在代码中为collision_layer,它表示物体所处的碰撞图层,一个物体一般处于一个图层中 Mask 即掩码,在代码中为collision_mask,它表示当前物体所关心的其他的碰撞图层,可包含多个图层 碰撞图层很好理解,类似PhotoShop/GIMP/Krita这些图片处理软件中的图层概念,用于把不同的内容分离开来,游戏中碰撞节点一般处于...
12. 为什么RayCast/RayCast2D 只有 Collision Mask而没有Collision Layer? 这意味着什么? 这意味着其他人不能决定自己是否和raycast碰撞,只有RayCast可以决定自己打算和处于哪些Layer的对象碰撞。 13. 为什么Godot没有现成的FSM?这会影响它的易用性么? J: 我不知道。不会影响易用性。因为动画系统通常包含着一个天然...
它们默认情况下会监测碰撞(由monitoring属性控制),并且还有"body_entered"和"body_exited"信号,您可以像刚体中的信号一样使用它们。您可以设置collision_mask来控制这一点。 此外,区域还具有"area_entered"和"area_exited"信号。也就是说,它们可以检测其他区域。这就是它的collision_layer和monitorable的作用所在。
12. 为什么 RayCast/RayCast2D 只有 Collision Mask 而没有 Collision Layer? 这意味着什么? 这意味着其他人不能决定自己是否和 raycast 碰撞,只有 RayCast 可以决定自己打算和处于哪些 Layer 的对象碰撞。 13. 为什么 Godot 没有现成的 FSM?这会影响它的易用性么?
移动时不要使用move(),要使用move_and_collide()或者move_and_slide()方法。如果碰撞,则api会停止,碰撞触发后手动处理之后的事情。 碰撞形状 绝对不要对碰撞形状进行缩放 物理过程 在_process中刷新可能物理位置不稳定,使用_physics_process来处理 layer mask 层与遮罩 ...