Physics Simulation - Hit Event的触发机制

个人学习笔记归档;

有时在使用Hit Event作为击中判断的时候,会有短时间内重复判定的情况,即使两个物理体都看上去静止了;

原因是OnHit / Hit Event 是在两个物理体(刚体)之间发生碰撞接触、并且产生了速度变化(冲量)时由物理引擎(Chaos)触发的,换句话说,只要当物理引擎检测到"接触 + 速度变化"时,就会触发一次Hit;

那么,在两者接触时,一帧内可能还有微小的抖动导致仍然触发了Hit事件,所以假如在相关逻辑中写入了逻辑,就会重复判断;一般来说,比如Bullet这样的对象,会在触发Hit后马上销毁以避免此情况;

另外,在一个BP中,Class会有OnHit,每个可产生相关事件的组件也会有自己的OnHit等事件,Class的OnHit是对自己所有组件的相关事件的一个汇总,可以在这些地方写入不同的逻辑(比如击中不同部位等)来达成各种功能;


相关推荐
淡海水1 天前
【节点】[EvaluateRefractionData节点]原理解析与实际应用
unity·游戏引擎·shadergraph·data·图形·evaluate·refraction
淡海水1 天前
【节点】[EvaluateScatteringColor节点]原理解析与实际应用
unity·游戏引擎·shadergraph·color·图形·evaluate·scattering
zhangzhangkeji1 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji1 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
风痕天际1 天前
Godot扫雷游戏制作记录2——鼠标交互
游戏·游戏引擎·godot
淡海水2 天前
【节点】[ComputeVertexPosition节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·position·compute·vertex
zhangzhangkeji2 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji3 天前
UE5线程进阶(1):
ue5
淡海水3 天前
【节点】[ScleraLimbalRing节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·ring·limbal·sclera