所以我正在写一个小型多人游戏。为此,我正在为玩家使用基本的立方体对撞机。目前,设置为isKinematic。
每个玩家都从主循环移动,使用偏移计时器来计算滞后/延迟。这很好用。但是,使用这种方法,碰撞是一个问题。 如果我可以避免使用Force,我不想使用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的向前移动和旋转,但对于我的生活,我找不到它们。有没有人对这种方法的碰撞提出建议?
答案 0 :(得分:0)
好的,我觉得很蠢。它已经足够长了,因为我已经完成了某种传统游戏,我完全忘记了使用rigidbody.velocity的正确方法。
mRigidBody.velocity = transform.forward * Speed * -mInput.y;