0

所以我正在写一个小型多人游戏。为此,我为玩家使用了基本的立方体对撞机。目前,设置为 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 的向前运动和旋转,但是对于我的生活,我找不到它们。有人对这种方法的碰撞有什么建议吗?

4

1 回答 1

0

好吧,我觉得自己很傻。自从我做了一个……有点传统的游戏已经足够长了,我完全忘记了使用rigidbody.velocity的正确方法。

mRigidBody.velocity = transform.forward * 速度 * -mInput.y;

于 2015-04-22T04:47:03.603 回答