所以我正在写一个小型多人游戏。为此,我为玩家使用了基本的立方体对撞机。目前,设置为 isKinematic。
每个玩家都从主循环中移出,使用偏移计时器来解决滞后/延迟问题。这工作正常。然而,使用这种方法,碰撞是一个问题。如果可以避免的话,我不想使用 Force - 以前的尝试证明这是一个大问题。transform.Translate() 看起来效果最好,但它不考虑任何击中网格的东西。isKinematic 禁用 OnCollisionEnter。我很想使用rigidbody.velocity,但它需要考虑旋转,而不是四向运动。
这是我目前的刻度代码:
public void FixedStep(double T)
{
if (Last == 0.0) Last = T;
double Offset = System.Math.Min(T - Last, 5000);
for (double X = 0.0; X < Offset; X++)
{
transform.Translate(Vector3.up * Speed * -mInput.y * Time.deltaTime);
//mRigidBody.velocity = (Vector3.forward * Speed * mInput.y);
transform.Rotate(Vector3.forward * TurnSpeed * mInput.x * Time.deltaTime);
}
Last = T;
}
我记得曾经有一些教程结合了rigidbody.velocity 的向前运动和旋转,但是对于我的生活,我找不到它们。有人对这种方法的碰撞有什么建议吗?