unity刚体组件相关知识点

刚体自带添加力的方法

给刚体家里的目的就是 让其有一个速度 朝一个方向移动

1. 首先应该获得刚体组件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson12 : MonoBehaviour
{
    private Rigidbody rgb;
    // Start is called before the first frame update
    void Start()
    {
        rgb = GetComponent<Rigidbody>();
    }
}

2. 添加力
相对世界坐标
世界坐标系 z轴正方向加一个力
加力过后 对象是否停止移动 是由阻力决定的
如果阻力为0,那么物体永远不会停下

rgb.AddForce(Vector3.forward * 10);

相对本地坐标系

rgb.AddRelativeForce(Vector3.forward * 10); // 朝自己的面朝向
rgb.AddForce(this.transform.forward * 10);  // 世界坐标系方法中朝自己的面朝向

3. 添加扭矩力 ,让其旋转

相对于世界坐标系

rgb.AddTorque(Vector3.up * 10);

相对于本地坐标系

rgb.AddRelativeTorque(Vector3.up * 10);

 4.直接改变速度

速度方向是相对于世界坐标系

如果要用这个方法来使其移动,一定要注意这一点
  

rgb.velocity = Vector3.forward * 10;

5. 模拟爆炸效果

如果想实现这个效果,那么构成这个效果的的所有物体 的刚体组件 ,都要被获得(都得挂在脚本获得刚体组件)
 

rgb.AddExplosionForce(100, Vector3.zero, 10);

     力的脚本

Constant Force(恒定力) 脚本

 刚体休眠

if (rgb.IsSleeping())   // 如果刚体休眠
{
   rgb.WakeUp();   // 让刚体醒来,停止休眠
}

如果想要物体一直动,那么写在Update函数中方可实现

void Update()
{
   // 如果想要物体一直动,那么写在Update函数中方可实现
   rgb.AddForce(Vector3.forward * 10);

}

扫描二维码关注公众号,回复: 17414515 查看本文章

猜你喜欢

转载自blog.csdn.net/m0_73113333/article/details/142881349