CollisionObject2D
2026/4/14大约 2 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — CollisionObject2D
CollisionObject2D
节点继承关系
继承链:Node → CanvasItem → Node2D → CollisionObject2D
继承自 Node2D
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Position | 本地位置(相对于父节点) |
| 属性 | GlobalPosition | 全局位置 |
| 属性 | Rotation | 旋转角度(弧度) |
| 属性 | Scale | 缩放比例 |
| 属性 | Skew | 倾斜角度(弧度) |
| 方法 | Rotate() | 旋转指定弧度 |
| 方法 | ToGlobal() | 本地坐标转全局坐标 |
| 方法 | ToLocal() | 全局坐标转本地坐标 |
继承自 CanvasItem
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Visible | 是否可见 |
| 属性 | Modulate | 整体颜色叠加(乘法) |
| 属性 | SelfModulate | 自身颜色叠加(不影响子节点) |
| 属性 | ZIndex | 绘制层级(Z 轴排序) |
| 信号 | visibility_changed | 可见性变化时触发 |
| 方法 | GetGlobalMousePosition() | 获取鼠标全局坐标 |
继承自 Node
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Name | 节点名称 |
| 属性 | ProcessMode | 处理模式(始终 / 暂停时 / 仅编辑器) |
| 属性 | ProcessPriority | 处理优先级,数字越小越先执行 |
| 信号 | ready | 节点进入场景树并准备就绪 |
| 信号 | tree_entered | 节点进入场景树 |
| 信号 | tree_exited | 节点完全离开场景树 |
| 方法 | GetNode<T>() | 按路径获取子节点 |
| 方法 | AddChild() | 添加子节点 |
| 方法 | RemoveChild() | 移除子节点 |
| 方法 | QueueFree() | 帧结束后释放节点 |
| 方法 | GetParent() | 获取父节点 |
定义
所有 2D 碰撞对象的"老祖宗"——一个抽象基类。无论是物理体(PhysicsBody2D)还是区域检测器(Area2D),都继承自它。
打个比方:CollisionObject2D 就像是"所有能参与碰撞的东西"的统称。它下面的两个主要分支——PhysicsBody2D(物理体)和 Area2D(区域),分别代表了"能被碰撞推动的东西"和"能检测碰撞但不被推动的东西"。
使用频率:★★★★ 维度专用常用——不直接使用。这是理解 2D 碰撞系统继承关系的关键节点。
节点用途
- 不直接使用,作为所有 2D 碰撞对象的基类
- 理解碰撞系统共同属性的基础
派生节点一览
| 派生节点 | 说明 | 链接 |
|---|---|---|
| PhysicsBody2D | 2D 物理体基类 | ★★★ |
| Area2D | 2D 区域检测器 | ★★★ |
所有子类共享的属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
CollisionLayer | uint | 1 | 所在碰撞层(用位掩码表示) |
CollisionMask | uint | 1 | 检测哪些碰撞层(用位掩码表示) |
DisableMode | int | 0 | 禁用时的碰撞行为 |
InputPickable | bool | true | 是否可被点击拾取 |
