一、AddForce() 添加力方法
1.作用:
给刚体添加一个力,让刚体按“世界坐标系”进行运动
2.代码:
Rigidbody.AddForce(Vector3, ForceMode);
Vector3:力的大小和方向
ForceMode:力的模式【enum类型】
3.ForceMode参数
类型为枚举类型,以什么样的方式添加力给刚体。
Acceleration:(加速度)
Force:(力)这种模式通常用于设置真实的物理
Impulse:(冲击力)通常用于瞬时发生的力
VelocityChange:(速度的变化)
二、AddRelativeForce( ) 添加一个相对的力
1.作用:
给刚体添加一个力,让刚体按“自身坐标系”进行运动
2.代码:
Rigidbody.AddRelativeForce(Vector3.ForceMode);
private Rigidbody m_Rigidbody;
void Start(){
m_Rigidbody = gameObject.GetComponent<Rigidbody>();
}
void Update(){
//m_Rigidbody.AddForce(Vector3.forward *10,ForceMode,Force);
//这种情况下给球体添加力,会使他超世界坐标系移动
if(Input.GetKeyDown(KeyCode.Z))
{
m_Rigidbody.AddRelativeForce(Vector3.forward *1000,ForceMode,Force);
//这种情况下按下键盘Z,添加一个很大的力,使球体向他自身坐标系方向飞出
}
}
三、FixedUpdate( )
所有和物理相关的操作,代码都写在FixedUpdate()方法体内
固定更新时间间隔是0.02秒
四、总结
1.事件方法:
Start():执行一次
FixedUpdate():执行物理操作
Update():每帧执行一次
2.Rigidbody(刚体)
MovePosition([Position] + Vector3); 刚体移动物体的位置
AddForce(Vector3,ForceMode); 给刚体添加力,方向为世界坐标系
AddRelativeForce(Vector3,ForceMode): 给刚体添加力,方向为物体坐标系