Unreal Engine 4 物理模拟之物理碰撞、重叠与射线检测

本文介绍了Unreal Engine 4的物理模拟,详细讲解了碰撞组件的基本属性,包括碰撞、重叠和包围盒的设置。在射线检测方面,阐述了自定义踪迹通道、对象通道、预设的使用,并通过代码示例展示了根据通道和对象类型进行射线检测的方法。
摘要由CSDN通过智能技术生成

1、碰撞组件基本属性

碰撞组件的属性如图

这里写图片描述

  • 属性简要介绍:
  • Simulation Generates Hit Events:是否对碰撞事件进行通知
  • Phys Material Override:指定该Mesh的物理材质
  • Generate Overlap Events:是否对重叠事件进行通知
  • Collision Presets:碰撞预设
    • Collision Enabled:
      • No Collision:无碰撞
      • Query Only(No Physics Collision):仅响应踪迹碰撞,无物理碰撞
      • Physics Only(No Query Collision):仅响应物理碰撞,无踪迹碰撞
      • Collision Enabled(Physics and Query):同时响应物理碰撞和踪迹碰撞
  • Object Type:表示当前Mesh的对象类型(用于区别场景的Mesh类型,以便进行不同的碰撞响应)
  • Collision Responses:碰撞响应设置
    • Trace Responses:踪迹响应
      • Trace Channel Setting:踪迹响应的相关设置,通常用于射线的碰撞检测。假若现在有一束对Visibility通道进行检测的射线穿过该物体时,如该Mesh的Visibility选择为Block,将会触发碰撞事件,如该Mesh的Visibility选择为Ignore,那么将不会触发碰撞事件。
    • Object Responses: 对象响应
      • Object Type Setting:对象相应的相关设置,可用于射线检测,不同Mesh之间的物理交互等。假若现在有两个Cube(Object Type均为WorldStatic)迎面相撞,那么当Cube1和Cube2的对象响应下的WorldStatic均设置为Block时,两个Cube会相互阻挡对方。否则将会互相穿过对方。
  • Use CCD:是否针对该对象应用连续碰撞检测,增加检测的准确度。
  • Always Create Plysics State:是否总是创建物理状态(它的碰撞属性、质量、休眠等)。设置为真时可减少计算对象的物理状态的性能消耗来提高游戏性能。
  • Multi Body Overlap:如果此值为true,如重叠的物理刚体为多刚体组件,则此组件将对每个重叠的物理刚体将生成单独的重叠。设想一下骨架物理资源,具有其独立的碰撞形状。启用该项后,角色的手将生成 自己 的重叠事件。从而对所报告的内容及特定情况下应该怎么做有更多的控制。
  • Check Async Scene On Move:如果该项设置为 真 ,那么组件将在两个物理场景(同步和异步)中都查找碰撞。异步场景主要由可破坏网格物体的破碎块使用。
  • Trace Complex On Move:如果该项设置为 真, 扫过该组件的对象将在运动时跟踪复杂碰撞。复杂碰撞简而言之就是基于每个面的碰撞,而简单碰撞则是您的球体、胶囊体、盒体及生成的凸面体形状。
  • Return Material on Move:设置该项为 真 将返回物理材质到 Hit Info(碰撞信息) 中。

2、物理碰撞、重叠与包围盒

  • 有如图所示两个物理Mesh: Cube、Terrain
    这里写图片描述

2.1碰撞

  • 设置cube相关组件属性
    这里写图片描述
    • 启用Cube的物理模拟,使用重力。这样Cube将会受到重力而掉落。
    • 将Collision Enabled设置为Collision Enabled
    • 给Cube设置一个对象类型PhysicsBody(根据抽象逻辑设置)
    • 将对象响应类型(Object Type)的WorldStatic(Terrain的对象类型)设置为Block
  • 设置Terrain相关组件属性
    这里写图片描述
    • 将Collision Enabled设置为Collision Enabled
    • 给Terrain设置一个对象类型WorldStatic
    • 将对象响应类型的PhysicsBody(Cube的对象类型)设置为Block
  • 运行游戏
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值