Collision和Physics都是各种Mesh的属性,和Unity3D很像,Collision和Physics是两个独立的Component,Collision仅仅掌管碰撞发生的检测和回调,而Physics仅仅模拟碰撞发生之后位置速度等等的变化,可见Collision似乎用处更大一点。
比如Collision可以设置各种perset,里边的标签都是不同的碰撞处理逻辑,但是本质上都是一些channel。就是说我到底会和谁发生碰撞(这里要注意,Collision发生碰撞不一定会有物理表现,有物理表现完全是PhysicsSimulate的功能,Collision仅仅检测是否碰碰撞和回调一些碰撞处理函数)
比如:
BlockAll会和所有物体发生碰撞(不开启PhysicsSimulate,还是能穿过,开启之后会和所有物体碰撞)
而Vehicle会和WorldStatic、WorldDynamic发生碰撞(毕竟是汽车,不能穿模啊)
Spectator只和WorldStatic发生碰撞(因为是观战者,不能干扰比赛,但也不能陷到地底下去啊)
Trigger只和WorldDynamic发生“碰撞”(注意了Trigger可不是真的碰撞,就像前边说的,Collision碰撞可能触发了Overlap,但是不会有物理表现,两物体会互相穿过,不发生碰撞之后的反弹,就算你开了PhysicsSimulate,也只是会对Trigger的mesh提供重力模拟,它碰到谁都是穿过的)
其实看这些预设的模式都不是很好懂,直接看persets里边customs的所有设置
CollisionEnable管理检测决定可以碰撞之后,是仅仅发生overlap回调、raycast(射线拾取)、sweep(扫描建模)还是有物理反馈,有下边三个选项
1.NoCollision:就算重叠,并且通过channel检测可以碰撞,也不发生overlap,不raycast,不物理反馈
2.NoPhysicsCollision:发生重叠,通过channel检测可以碰撞之后,进行overlap,raycast,但是不物理反馈,