Skip to content
写作:待补充更新:2026-05-16字数:—阅读:—维护:Azek431

创游世界物理与碰撞系统完全指南

一句话摘要

创游世界的物理系统由物理组件、碰撞盒、物理材质等多个要素组成,理解它们的工作原理是解决「角色走不动」「物体穿过地形」等常见问题的关键。物理组件决定物体能否移动和受力,碰撞盒决定物体之间如何交互,物理材质决定摩擦力和弹性等属性。

适合谁阅读

  • 刚接触创游世界不知道角色为什么走不动的新手
  • 遇到碰撞相关问题(如穿墙、地形阻挡失效)的制作者
  • 想深入理解物理引擎原理的进阶用户
  • 需要精确控制物体运动的开发者

你将学到什么

  • 物理组件的基本功能和使用方法
  • 碰撞盒的概念和设置方式
  • 不同物理材质的特性
  • 碰撞层级的概念和作用
  • 常见碰撞问题的排查和解决方法
  • 物理系统在战斗、移动、机关等场景的应用

核心结论

  1. 物理组件是移动能力的基础:没有物理组件,物体无法移动、受力或参与碰撞
  2. 碰撞盒决定交互边界:碰撞盒太小可能导致穿墙,太大可能导致角色卡住
  3. 物理材质影响手感:摩擦力决定移动停止后的滑动距离,弹性决定碰撞后的反弹程度
  4. 碰撞层级决定谁能碰谁:通过设置碰撞层级,可以控制物体之间的交互规则

1. 物理系统概述

1.1 什么是物理系统

物理系统是游戏引擎中模拟现实物理规律的部分。在创游世界中,物理系统主要负责:

功能说明
移动模拟物体如何在空间中移动
碰撞检测物体之间如何检测接触
力与速度重力、推力、阻力等物理效果
材质属性摩擦力、弹性等物理特性

1.2 物理系统在游戏中的作用

物理系统支撑了创游世界中的多种核心功能:

  • 角色移动:玩家控制角色移动、跳跃
  • 物理交互:推动物体、堆叠道具
  • 战斗碰撞:子弹命中、伤害判定
  • 机关触发:踩下压力板、触发机关门
  • 地形阻挡:角色无法穿过墙壁

2. 物理组件详解

2.1 什么是物理组件

物理组件是赋予物体物理能力的关键组件。挂载物理组件后,物体才能:

  • 参与碰撞检测
  • 受到重力影响
  • 被其他物体推动
  • 使用物理相关脚本块

2.2 物理组件的主要参数

参数说明典型值
是否固定物体是否固定不动静态物体用「是」,角色用「否」
质量物体的质量,影响受力效果角色约 50-100
是否受重力是否受到重力影响地面角色用「是」
重力倍数重力的强度倍数通常用 1.0
摩擦力物体表面的摩擦系数地面用 0.3-0.5
弹性碰撞后的弹性系数橡胶用 0.8,钢铁用 0.1
最大移动速度物体可以移动的最大速度根据需求设置
最大旋转速度物体旋转的最大速度通常较小

2.3 常见物理组件配置

玩家角色配置

是否固定: 否
是否受重力: 是
质量: 80
摩擦力: 0.4
弹性: 0.0
最大移动速度: 300

静态平台配置

是否固定: 是
是否受重力: 否
质量: 无穷大(固定物体)
摩擦力: 0.3
弹性: 0.0

可推动箱子配置

是否固定: 否
是否受重力: 是
质量: 50
摩擦力: 0.5
弹性: 0.0
最大移动速度: 200

弹跳道具配置

是否固定: 否
是否受重力: 是
质量: 10
摩擦力: 0.0
弹性: 0.9
最大移动速度: 500

3. 碰撞系统详解

3.1 碰撞的基本概念

碰撞是指两个物体在空间中发生重叠时触发的检测和响应。碰撞过程通常包括:

  1. 碰撞检测:检测两个物体是否重叠
  2. 碰撞响应:根据物理材质和设置决定如何响应
  3. 碰撞事件:触发「当碰撞时」等脚本时机

3.2 碰撞盒(碰撞体)

碰撞盒是用来定义物体碰撞边界的几何形状。创游世界通常使用矩形碰撞盒。

碰撞盒的组成

参数说明
宽度碰撞盒的水平尺寸
高度碰撞盒的垂直尺寸
中心偏移碰撞盒中心相对于物体中心的偏移

碰撞盒设置技巧

  • 不要太大:碰撞盒太大会导致角色「卡在墙角」
  • 不要太小:碰撞盒太小可能导致穿墙
  • 贴合外观:碰撞盒应尽量贴合物体外观
  • 留有余量:稍微比外观小一点可以避免视觉穿帮

常见碰撞盒问题

问题原因解决方法
穿墙碰撞盒太小或物体移动速度太快增大碰撞盒或降低移动速度
卡住碰撞盒太大减小碰撞盒
视觉穿帮碰撞盒和外观不匹配调整碰撞盒位置

3.3 碰撞层级

碰撞层级用于控制哪些物体会发生碰撞。创游世界通常通过「碰撞层级」设置来实现:

  • 让某些物体可以互相碰撞
  • 让某些物体忽略碰撞

典型应用场景

场景设置
玩家角色和敌人相互碰撞
玩家和道具不碰撞(穿过去拾取)
子弹和敌人碰撞
子弹和玩家不碰撞(友军穿透)

3.4 碰撞触发时机

触发时机说明
当碰撞时两个物体发生碰撞时触发
当碰撞结束时两个物体停止碰撞时触发

4. 地形与地块系统

4.1 地块的物理属性

地块是地图编辑器中用来构建地形的单元。每个地块可以有独立的物理属性:

属性说明
阻挡通行是否阻挡物体通过
摩擦力地块表面的摩擦系数
弹性地块表面的弹性
是否可破坏地块是否可以被破坏

4.2 地块与角色交互

常见问题:角色走不动?

可能原因

  1. 地块设置了阻挡通行

    • 地块自带阻挡属性,导致角色无法通过
    • 解决:检查地块设置,移除阻挡属性
  2. 地块碰撞盒问题

    • 地块的碰撞盒设置异常
    • 解决:检查地块碰撞设置
  3. 角色物理组件问题

    • 角色缺少物理组件
    • 解决:添加「物理组件」

4.3 地块与子弹

子弹在碰到地块时的行为由子弹属性决定:

子弹属性效果
穿透子弹可以穿透地块
反弹子弹碰到地块后反弹
停止子弹碰到地块后停止
销毁子弹碰到地块后销毁

5. 战斗中的物理应用

5.1 子弹物理

子弹组件通常包含以下物理属性:

属性说明
移动速度子弹飞行的速度
伤害子弹命中的伤害值
穿透力子弹可以穿透的物体数量
反弹次数子弹可以反弹的次数
生命周期子弹存在的时间限制

5.2 物理伤害

物理伤害通常基于碰撞检测:

子弹碰撞到目标

检测碰撞层级(确认是敌人)

获取子弹伤害值

调用「受到伤害」脚本

目标生命值减少

5.3 击退效果

击退效果通常通过物理力实现:

实现方式说明
瞬时速度给目标一个瞬时速度,让它飞出去
持续推力给目标一个持续推力
位置偏移直接修改目标位置

6. 常见问题与解决

Q:角色走不动怎么办?

排查步骤

  1. 检查是否挂了「物理组件」
  2. 检查是否挂了「角色组件」
  3. 检查地块是否有「阻挡通行」属性
  4. 检查碰撞盒是否设置正常
  5. 检查是否有其他物体阻挡

Q:物体穿墙了怎么办?

排查步骤

  1. 增大墙体碰撞盒
  2. 降低物体移动速度
  3. 检查碰撞层级是否正确
  4. 确保子弹/物体有物理组件

Q:角色卡在角落里怎么办?

排查步骤

  1. 减小角色碰撞盒
  2. 检查碰撞层级设置
  3. 避免在狭窄角落放置阻挡物
  4. 添加碰撞检测的退出逻辑

Q:子弹不消失怎么办?

排查步骤

  1. 检查子弹生命周期设置
  2. 检查子弹销毁条件
  3. 检查是否设置了「穿透」

Q:物理效果不自然怎么办?

调整参数

  1. 调整摩擦力(地面滑动感)
  2. 调整弹性(碰撞反弹)
  3. 调整重力(下落速度)
  4. 调整质量(推动效果)

7. 性能优化建议

7.1 减少物理计算量

  • 避免大量物理物体同时存在
  • 不需要的物理物体设置为「固定」
  • 合理使用碰撞层级减少碰撞检测次数

7.2 物理相关的性能问题

问题解决
卡顿减少物理物体数量
掉帧简化碰撞盒
延迟减少碰撞层级数量

相关页面


待验证问题

  • [待验证] 碰撞层级的具体设置方式和数量限制
  • [待验证] 不同物理材质的详细参数范围
  • [待验证] 复杂碰撞场景(如斜坡、弧面)的处理方式
  • [待验证] 联机环境下物理同步的具体策略

后续优化方向

  • [ ] 补充物理组件参数的详细截图说明
  • [ ] 添加更多碰撞配置的实战案例
  • [ ] 完善不同游戏类型的物理配置推荐
  • [ ] 补充物理调试工具的使用方法

参与维护

发现文档问题?

你可以编辑页面、提交反馈,或复制链接给维护者,帮助这个资料库继续变好。

由 Azek431 整理与维护 | 基于 MIT 许可证开源