Unity 物理 干货总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WangHaoDiablo/article/details/52678367
总结主要基于官方文档,也加入了自己的经验。

物理系统基本原则:
【1】GameObject的想要有物理行为,必须为之加入刚体Rigidbody。想要有碰撞行为,必须为之加入碰撞器Collider
【2】刚体控制的GameObject,你不应该在去直接改变他的Transform,而是应该为之添加Force让物理系统去推动GameObject,让物理系统去控制其运动。
如果你想自己控制他的话,那么起码要把 Is Kinematic 选上。运行时切换Is Kinematic模式可以实现一些效果,比如一辆车,开车的时候,人来控制,被炸飞的时候,物理来控制。但是这么做是比较耗的,最好悠着点用。

碰撞:
碰撞可以组合,刚体只有根节点1个。
MeshCollider可以满足复杂情况,但是无法和另一个meshCollider碰撞,而且很耗,PolygonCollider也一样。
最好用近似模型去描述他们,否则太耗,伤不起。

物理材质Physics materials
看起来挺牛逼。其实主要就是描述摩擦与弹性系数的东西。

Trigger和碰撞的本质区别
相同,都会触发事件
区别,Tirgger不会产生碰撞,物体可以进入另一个物体,不会被反弹回去。

几种Collider
Static Collider:静态碰撞体 有碰撞,无刚体。 带有刚体的物件可以和他产生碰撞,但不会移动它。
Rigidbody Collider: 刚体碰撞他 有碰撞,有刚体。完全有物理系统模拟,响应碰撞和力。
Kinematic Rigidbody Coiilder:动力学刚体碰撞体,有刚体,有碰撞,设置Is Kinematic为True。不响应力和碰撞,脚本控制其Transform。

Unity官方那个表格太反人类,总结起来就一句话
【1】碰撞产生条件:
    【1.1】至少一方是RigidbodyCollider
    【1.2】任何一方不允许挑上Is Trigger
【2】产生Trigger的条件:
    【2.1】至少一方是Is Trigger
    【2.1】至少一方有RigidBody
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页