物理引擎(刚体变量)(2)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lfanyize/article/details/102649179

1.角速度(angularVelocity):
该变量表示刚体的角速度向量,其数据类型为Vector3,该向量的方向为刚体旋转轴的方向,旋转遵循左手定则,该向量的大小为返回的向量的模,在一般情况下,不建议修改这个值,因为修改之后会一定程度上会造成模拟失真。
使用:

private void Start()
    {
        this.GetComponent<Rigidbody>().angularVelocity = Vector3.up;
    }

2.位移速度(velocity):
该变量改变的是物体位移的速度值,在开发过程中除非很必要,否则也不建议修改这个变量的值,同样物体的运动会模拟失真。
下面的代码可以实现物体的速度骤增,以实现瞬移效果

private void Start()
    {
        GetComponent<Rigidbody>().velocity = Vector3.up;
    }

3.重心(centerOfMass):
作用:调低物体的重心,使物体不易因其他物体的碰撞而倒下,注意:物体的重心坐标事宜模型坐标系为准,而不是世界坐标系

private void Start()
    {
        GetComponent<Rigidbody>().centerOfMass = Vector3.up;
    }

4.碰撞检测开关(detectCollisions):
该变量默认是true,在必要的时候课一关闭,比如在一些过程中,有一些物体并不是时刻都需要进行碰撞检测的,此时通过设置本属性,而不是移除组件来实现,对程序的运行效率有明显的提高,简单的实现一下如何关闭物体的监测开关

private void Start()
    {
        GetComponent<Rigidbody>().detectCollisions = false;
    }

5.最大角速度(maxAugularVelocity)
该变量用于设置最大最大角速度,其数据类型为float,并且只能设置为非负数,其值可以无限大,默认值为7,用来限制物体的旋转速度,当出现物体的旋转角速度大于最大角速度的时候,会将当前的角速度重新设置成最大角速度。

private void Start()
    {
        GetComponent<Rigidbody>().maxAngularVelocity = 1.9f;
    }

6.最大穿透速度(maxDepenetrationVeloctiy)
当场景中的某一个物体穿透其他物体的时候,这个物体的速度会变得非常不稳定,这个时候可以通过设置本变量来限制物体的速度,从而使物体变得平滑,这个值为非负数,且为float类型。
使用代码

private void Start()
    {
        GetComponent<Rigidbody>().maxDepenetrationVeloctiy = 1.9f;
    }

7.坐标(position)
坐标变量表示的是刚体在世界坐标系中的坐标,数据类型为Vector3,注意,刚体中的坐标与Transform中的坐标有着完全不同的意义,刚体中的坐标表示的物体在物理模拟中的坐标值,而后者表示的是绘制的场景中的坐标,尽管两者的坐标会尽可能的保持一致,但是在物体高速运动的时候,这两个变量的值会有些许差异。

8.旋转(rotation)
该变量表示的是物体在世界坐标系中的旋转,数据类型为Quaternion,同样的是,该变量与Transform中的旋转也有着完全不同的意义,其中刚体中的变量表示的是物理模拟中的旋转至,后者则表示的是物体在绘制场景中的旋转值,与坐标变量相同,两个值会尽可能的保持一致,但是在 物体告诉旋转的时候会有些许差异。

猜你喜欢

转载自blog.csdn.net/lfanyize/article/details/102649179
今日推荐