创游世界碰撞检测速查卡
一句话摘要
本文档汇总创游世界中碰撞检测、区域检测和重叠检测的快速查询指南,帮助快速理解物理组件、碰撞事件和检测逻辑的使用方法。
适合谁阅读
- 需要快速了解碰撞检测机制的开发者
- 遇到碰撞相关问题的创作者
- 想学习物理系统基础的用户
你将学到什么
- 三种检测方式的区别
- 物理组件的使用方法
- 碰撞事件的触发时机
- 常见问题的解决方案
三种检测方式对比
| 检测类型 | 触发方式 | 组件要求 | 适用场景 |
|---|---|---|---|
| 碰撞检测 | 物理接触时触发 | 需要物理组件 | 伤害判定、道具拾取 |
| 重叠检测 | 区域重叠时触发 | 需要物体检测器 | 区域触发、范围检测 |
| 区域检测 | 持续检测是否在区域内 | 需要物体检测器 | 触发器、警戒区域 |
碰撞检测
Q:什么是碰撞检测?
A:当两个带物理组件的物体物理接触时触发的事件。
Q:碰撞检测需要什么组件?
A:两个物体都需要添加「物理」组件。
Q:碰撞检测有哪些触发时机?
A:
| 触发时机 | 说明 |
|---|---|
| 当碰撞开始 | 两个物体开始接触时触发 |
| 当碰撞结束 | 两个物体分离时触发 |
| 当碰撞持续 | 两个物体保持接触时每帧触发 |
Q:碰撞检测的基本写法?
当碰撞开始 时
└─ 如果 当前碰撞对象 名称 等于 "金币" 则
└─ 销毁 当前碰撞对象
└─ 发送广播 "金币_获得"Q:碰撞检测的常见用途?
- 伤害判定(玩家攻击怪物)
- 道具拾取(接触金币获得分数)
- 地形阻挡(检测是否碰到障碍物)
- 触发机关(触碰开关打开门)
Q:为什么碰撞不触发?
A:常见原因:
- 物体没有物理组件
- 碰撞层级设置问题
- 碰撞盒设置为 0
- 其中一个物体是触发器模式
重叠检测
Q:什么是重叠检测?
A:使用物体检测器组件,持续检测某个区域是否与目标重叠。
Q:重叠检测需要什么组件?
A:添加「物体检测器」组件。
Q:物体检测器有哪些模式?
A:
| 模式 | 说明 |
|---|---|
| 碰撞 | 需要物理接触才能触发 |
| 重叠 | 区域重叠即可触发 |
| 区域 | 持续检测区域内是否有目标 |
Q:重叠检测的基本写法?
当重叠开始 时
└─ 显示 "玩家进入警戒区" 提示
当重叠结束 时
└─ 显示 "玩家离开警戒区" 提示Q:重叠检测的常见用途?
- 警戒区域(敌人发现玩家)
- 传送门检测(进入传送区域)
- 安全区域(进入回复血量)
- 触发剧情(进入特定区域触发对话)
区域检测
Q:什么是区域检测?
A:持续检测某个区域(圆形/矩形)内是否存在特定物体。
Q:区域检测需要什么?
A:物体检测器组件 + 「检测区域」设置。
Q:区域检测的配置项?
A:
| 配置项 | 说明 |
|---|---|
| 形状 | 圆形 / 矩形 |
| 大小 | 区域尺寸 |
| 检测目标 | 要检测的物体类型 |
| 持续检测 | 是否每帧检测 |
Q:区域检测的基本写法?
当 开始时
└─ 开启区域检测 "圆形区域" 半径=100 检测目标="敌人"
当区域检测到 "敌人" 时
└─ 发送广播 "敌人_发现玩家"物理组件设置
Q:物理组件的主要参数?
A:
| 参数 | 说明 |
|---|---|
| 物理类型 | 动态 / 静态 / kinematic |
| 碰撞形状 | 矩形 / 圆形 / 多边形 |
| 碰撞盒大小 | 碰撞区域尺寸 |
| 是否为触发器 | 是否穿透(不产生物理碰撞) |
| 碰撞层级 | 与哪些层级的物体碰撞 |
Q:触发器模式和普通模式的区别?
A:
| 模式 | 物理碰撞 | 触发事件 |
|---|---|---|
| 普通模式 | ✅ 有物理碰撞 | ✅ 触发碰撞事件 |
| 触发器模式 | ❌ 无物理碰撞 | ✅ 触发碰撞事件 |
Q:什么时候用触发器模式?
A:
- 传送门(玩家进入后传送到其他位置,但不被阻挡)
- 检测区域(只检测玩家,不阻挡玩家)
- 道具收集(只触发拾取,不阻挡移动)
碰撞层级
Q:什么是碰撞层级?
A:用于控制哪些物体会产生碰撞的系统。
Q:碰撞层级怎么设置?
A:
- 在「游戏设置」中配置碰撞层级
- 给物体设置所属层级
- 设置物体要与哪些层级碰撞
Q:常见的碰撞层级设计?
A:
| 层级 | 包含物体 | 说明 |
|---|---|---|
| 地面 | 地板、墙壁 | 角色和敌人都会碰撞 |
| 敌人 | 敌人角色 | 只有角色碰撞 |
| 道具 | 金币、道具 | 只有角色碰撞 |
| 子弹 | 玩家子弹、敌人子弹 | 敌人和角色分别对应 |
常见问题
Q:为什么角色穿墙了?
A:
- 检查墙壁是否有「物理」组件
- 检查墙壁是否有「阻挡通行」
- 检查碰撞层级是否正确
- 检查墙壁碰撞盒大小
Q:为什么碰撞检测不触发?
A:
- 检查两个物体是否都有「物理」组件
- 检查碰撞层级是否允许碰撞
- 检查碰撞盒大小是否正确
- 检查是否使用了触发器模式
Q:为什么重叠检测不触发?
A:
- 检查是否有「物体检测器」组件
- 检查检测模式是否正确
- 检查检测区域大小
- 检查目标物体是否符合检测条件
Q:如何实现单向碰撞(如跳到平台上)?
A:
- 使用碰撞层级控制
- 平台设置只与「下」方向碰撞
- 角色可以在平台上通过但不能穿过
快速参考表
| 需求 | 需要的组件 | 触发时机 |
|---|---|---|
| 角色被怪物碰到受伤 | 物理组件 | 当碰撞开始 |
| 碰到金币获得分数 | 物理组件(触发器模式) | 当碰撞开始 |
| 进入区域触发剧情 | 物体检测器 | 当重叠开始 |
| 检测附近有没有敌人 | 物体检测器 | 当区域检测到 |
| 敌人追着玩家跑 | 物理组件 + AI组件 | 每帧/碰撞开始 |
相关页面
待验证问题
以下问题需要进一步验证:
| 问题 | 状态 | 验证方向 |
|---|---|---|
| 不同版本引擎的碰撞行为差异 | 🔄 待验证 | 需要多版本对比 |
| 复杂碰撞形状的具体限制 | 🔄 待验证 | 需要官方文档确认 |
| 性能与碰撞检测数量的关系 | 🔄 待验证 | 需要压测确认 |
📝 说明:碰撞检测核心用法已稳定,进阶内容属于研究范畴。
后续优化方向
- [ ] 补充更多代码示例
- [ ] 添加图解说明
- [ ] 完善常见场景的解决方案
- [ ] 增加视频演示
