AddForce()
- 作用
- 给物体添加一个力,让刚体按 “世界坐标系” 进行运动。
- 代码
- Rigidbody.AddForce(Vector3, ForceMode);
- Vector3:力的大小和方向;
- ForceMode:力的模式 [enum]
private Rigidbody m_Rigidbody; void Start() { m_Rigidbody = gameObject.GetComponent<Rigidbody> (); } void Update() { m_Rigidbody.AddForce(Vector3.forward * 10, ForceMode.Force); }
- ForceMode参数
- 枚举类型。以什么样的方式添加力给物体。
- Acceleration:加速度;
- Force:力。通常用于设置真实的物理;
- Impulse:冲击力。通常用于瞬间发生的力;
- VelocityChane:速度的变化。
AddRelativeForce()
- 作用
- 给刚体添加一个力,让刚体按 “自身坐标系” 进行运动。
- 代码
- Rigidbody.AddRelativeForce(Vector3, ForceMode);
- Vector3:力的大小和方向;
- ForceMode:力的模式 [enum]
private Rigidbody m_Rigidbody; void Start() { m_Rigidbody = gameObject.GetComponent<Rigidbody> (); } void Update() { if(Input.GetKeyDown(KeyCode.Z)) { m_Rigidbody.AddForce(Vector3.forward * 1000, ForceMode.Force); } }
FixedUpdate()
- 固定更新方法
- 所有和物理相关的操作,代码都要写在 FixedUpdate() 方法体内。
- 固定更新的时间间隔是0.02秒,1秒执行 50次。
- Edit --> Project Settings --> Time 面板中的 Fixed Timestep 参数设置。
void FixedUpdate() { }
- Edit --> Project Settings --> Time 面板中的 Fixed Timestep 参数设置。
- 在Update() 中执行物理操作会出现卡顿的情况。