Unity3D⼊门(九):刚体常⽤⽅法介绍Unity3D⼊门(九):刚体常⽤⽅法介绍
AddForce()
1.作⽤
给刚体添加⼀个⼒,让刚体按“世界坐标系”进⾏运动。例如,游戏中发射的⼦弹。
2.代码
Rigidbody.AddForce(Vector3,ForceMode);
Vector3:⼒的⽅向和⼤⼩;
ForceMode:⼒的模式[enum 类型]。
3.ForceMode 参数
类型为枚举类型,以什么样的⽅式添加⼒给刚体。
枚举值说明
Acceleration加速度
Force⼒,这种模式通常⽤于设置真实的物理,最常⽤
Impulse冲击⼒,这种模式通常⽤于瞬间发⽣的⼒VelocityChange速度的变化AddRelativeForce()
1.作⽤
给刚体添加⼀个⼒,让刚体按“⾃⾝坐标系”进⾏运动。
2.代码
Rigidbody.AddRelativeForce(Vector3,ForceMode);
Vector3:⼒的⽅向和⼤⼩;
ForceMode:⼒的模式[enum 类型]。
3.出现的问题
物体在运动时⾃⾝坐标系发⽣变化,出现往复运动,如下图。
unity3d入门解决⽅法:引⼊按键进⾏控制。
public class ForceTest : MonoBehaviour
{
private Rigidbody m_rigidbody;
// Use this for initialization
void Start()
{
m_rigidbody = gameObject.GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
//m_rigidbody.AddForce(Vector3.forward*10, ForceMode.Force);
if(Input.GetKeyDown(KeyCode.Z))
{
m_rigidbody.AddRelativeForce(Vector3.forward *2000, ForceMode.Force);
}
}
void FixedUpdate()
{
}
}
FixedUpdate()
1.作⽤
固定更新⽅法。所有和物理相关的操作,代码都要写在 FixedUpdate()⽅法体内。固定更新的时间间隔是 0.02 秒,1 秒执⾏ 50 次。
Edit–>Project Settings–>Time ⾯板中的Fixed Timestep参数设置。
2.特点
Update()⽅法是每帧执⾏⼀次。
画⾯每渲染完⼀次,就是⼀帧,每帧的时间是不固定的。
在 Update()⽅法中执⾏物理操作,会出现卡顿的情况。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论