刚体自带添加力的方法
给刚体家里的目的就是 让其有一个速度 朝一个方向移动
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 查看本文章
