角色Collider的基本作用是阻止一个物体进入另一个物体。 如果不在墙上添加Collider,就可以穿过墙壁。 当然,在Unity中,当高大的蓝天创建一个3D Object时,该3D Object会自动带有颜色。
为了使渲染高速化,Unity将Collider分为2类,一类是位置不变的Collider。 另一个是位置发生变化的韩国。
位置不变的Collider不会移动,所以只需计算一次位置即可,具有加速的效果。 位置不变的Collider称为静态Collider。
位置变化的Collider称为动态Collider,动态Collider分为栅格体颜色和钥匙栅格体颜色。
下面是我的学习笔记。
静态颜色
如果高大的蓝天上有一个Cube,您会发现Cube包含五个组件。 其中,与正文相关的只有Box Collider。
在组件结构上,只包含Collider且不包含Rigidbody的GameObject是静态Collider。
静态颜色用于不移动的物体。 接近的动态Collider时会与静态Collider碰撞,但静态Collider不会移动。 只要接近静态Collider,就不会发生碰撞。 (见本文最后一表)
静态Collider不仅不应该移动,而且不应该在游戏中被取消或设置。 违反这些规则会带来明显的性能损失。
栅格体颜色
同时包含颜色和网格主体的GameObject称为Is Kinematic中没有复选标记的网格主体。 Rigidbody Collider用于运动的物体,受力的影响。 例如在爆炸中,如果某人被设置为Rigidbody Collider,这个人就会被炸飞。
Kinematic Rigidbody Collider
如果你想改变某个物体的位置,你希望这个物体不受力的影响,只受脚本的支配。 例如,有超能力的人可以不受爆炸的影响,站在原地一动不动。 现在,将颜色和栅格体都添加到GameObject中,并选中栅格体的Is Kinematic选项。
Trigger
除了冲突外,Collider角色还可以检测动态Collider是否进入了区域。 例如,如果希望蜘蛛在进入房间的角落时从天花板上挂下来,可以将Cube放在角落里,然后选中“Is Trigger”选项。勾选了Trigger选项之后,其他的Collider就不会和它碰撞,而可以进入这个Collider,并触发OnTriggerEnter()等函数,因此可以在OnTriggerEnter函数中设置蜘蛛的行为。
碰撞效果矩阵的一个常见规则是,没有添加“Rigidbody”组件的对象不受物理效果的影响(不会碰撞,不会产生“trigger”效果)。
Collision detection occurs and messages are sent upon collision
- staticcolliderrigidbodycolliderkinematicrigidbodycolliderstatictriggercolliderrigidbodytriger ollideryykinematicrigidbodycolliderystatictriggercolliderrigidbodytriggercolliderkinematicrigidbodytrigger
- staticcolliderrigidbodycolliderkinematicrigidbodycolliderstatictriggercolliderrigidbodytriger ycollideryykinematicrigidbodycollideryyystatictriggercollideryyyrigidbodytriggercollideryyykinematicriggger