2D刚体和碰撞体

http://bbs.9ria.com/thread-421453-1-1.html


我们看下Rigidbody 2D刚体的属性。


            2D刚体和碰撞体_第1张图片



        mass:0代表着无限大,也就是“静态刚体”。范围:0.001到100000。


        linear Drag:线性阻尼,也就是物体在运动过程中收到的阻力。


        Angular Drag:角度阻尼系数,刚体在旋转过程中受到的阻力。


        Gravity Scale:重力缩放,控制着重力的大小,其数值范围为-100000到100000.


        Fixed angle:固定角度,指刚体在运动过程中保持固定的角度,这就相当于关闭了刚体的选择功能。


        Is Kinematic:关节,控制刚体是否变为运动学物体,就是我们的刚体不在受物理引擎的控制,而受transform或者是动画等等的控制。


        Sleeping Mode:睡眠,unity会临时把处于静止状态的物理模拟去除,这样主要是节省计算资源。


        Never Sleep:永远不睡眠。


        start awake:awake时就进入睡眠。


        start asleep:立即进入睡眠。


        Collision Detection:碰撞发现。


        Discrete:正常状态下的检测。


        Continuous:继续性检测。


           


        2D碰撞器:


        我们给我们游戏的前景添加上去,大家照着原项目做吧,哈哈。关键是我们给前景添加上碰撞体,看下图那个黄色框就是添加了碰撞体的碰撞范围。


        2D刚体和碰撞体_第2张图片


        


        unity2D的碰撞体和3D的差不多。在unity2D中,有Box Collider2D(盒子碰撞器),Circle Collider2D(圆形碰撞器),Edge Collider2D(边缘碰撞器)和Polygon Collider2D(多边形碰撞器)。Edge Collider2D和Polygon Collider2D是3D项目里面没有的。


        


        (PS:解释可能有点生硬,大家不要见怪,自己添加实践下就容易理解了。);


        2D刚体和碰撞体_第3张图片2D刚体和碰撞体_第4张图片


        


        


        下面我们以UFO飞船为例来介绍下Polygon Collider2D。给UFO添加Polygon Collider2D。对于多边形碰撞器有一个比较特殊的功能,也就是可以编辑多变形碰撞器的外形。例如我们在按住Shift的同时,我们可以在多边形上拖动可以出现一个顶点,拖动次顶点,可以改变碰撞器的外形。按住Ctrl键的同时,单击顶点,可以把顶点删除。


        


        刚体属性的介绍:


        Material:定义刚体表面的一些物理特性,例如摩擦力,柔软程度等,由此决定了它对其他物体的反弹能力等。


        Is Trigger:属于3D碰撞的都应该知道这个属性的作用。勾了就会产生的是刚体碰撞。不勾就是触发碰撞,此时碰撞的两个物体之间可以不使用刚体去进行驱动。


        


        对于unity2D来说,我们可以简单的理解为其实就是3D的物理工具中减去以为,也就是只是在x,z轴方向的计算,对于z轴的计算省略罢了。


        


        下面我们来看一张表


        2D刚体和碰撞体_第5张图片


        


        这张表主要介绍了不同类型的刚体和碰撞器,以及它们之间的碰撞及触发关系。例如静态碰撞器指只是用了碰撞器组件的碰撞刚体,也就是类似于我们的UFO物体。


        而RigidBody指的是是用了刚体组件以及碰撞器的刚体物体。


        表的上半部分,就是对这些是用了不同组件类型的物体,它们之间的碰撞发现以及信息传递。而表的下半部分是,是对于这些不同类型的物体之间的触发碰撞关系以及信息传递。我们在第三列可以看到Kinematic Rigidbody Collider。


        此项指的是打开Kinematic选项的并且使用了collider组件的刚体物体,它与横列中Rigidbody Collider物体,也就是使用了rigidbody和collider组件的物体之间会发生碰撞,Y表示他们之间发生碰撞,并且会进行信息传递。而它与静态刚体之间就不会发生碰撞及信息传递。


你可能感兴趣的:(Unity3D脚本)