设置角速度及生成四元数及利用刚体

  • 在对物体的rotation属性赋值的时候,往往是四元数,所以我们需要把角度值转换成四元数
  • 代码如下:
//转换为四元数
Vector3 rotationVector3 = new Vector3(0f, 30f, 0f);
Quaternion rotation = Quaternion.Euler(rotationVector3);
myTransform.rotation = rotation; // 赋予当前物体
//从四元数转换为欧拉角
Quaternion.eulerAngles( ) //直接输出Quaternion的Vector3值
  • 在实现子弹掉落或者砖块掉落的时候,往往需要设置其随机绕某个轴旋转,并设置一个随机的角速度来模拟真实世界的效果
Rigidbody rb = MapList[index][i].AddComponent();
 rb.angularVelocity = new Vector3(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f)) * Random.Range(1,10);
 rb.angularDrag = 0;
 //或者
 object.rotate(new Vector3(  Random.range(0, 1), Random.range(0,1), Random.range(0,1)   ) )
  • 注意,我们设置的是角速度,刚体组件默认的角阻力为0.05,因此物体在旋转一段时间后会停止旋转,我们需要设置角阻力为0;
  • 实现掉落效果
  • 思路,给物体添加刚体,地面没有碰撞体,物体将掉落

你可能感兴趣的:(Unity)