Unity3D一步一步地移动

时间:2016-02-12 15:41:03

标签: c# unity3d virtual-reality

我正在尝试在Unity中创建我的运动系统,我将在稍后用于Oculus。

现在我用相机和一个名为" rb"的刚体创建了一个对象。

    // Perform movement
void PerformeMovement ()
{
    if (velocity != Vector3.zero) {
        rb.position = (rb.position + velocity);
    }
}

我在其他班级计算速度。 我想做两件事......

  1. 让运动感觉更像是传送。现在,它顺利地转移到了新的位置。
  2. 使刚性体在步骤后停止一两秒钟。因此,压制不会像跑步一样。
  3. 任何API提示?不是找人为我写的......或者是mby链接到类似的运动系统?

    主要目标是使运动更加增加而不是平滑,因此我可以绕过导致恶心的冲突。

    EDIT!

    现在我将我的代码更新为>

        void PerformeMovement ()
    {
        if (velocity != Vector3.zero) {
            if (timer % 60 == 1 ) {
                rb.MovePosition (rb.position + velocity * 20);
            }
        }
    
    }
    

    它有点像我想要但我现在如何处理碰撞? 如果步长足够长,它将只是逐步穿过对象。如果步骤太小,它会卡住,然后随机飞走......

1 个答案:

答案 0 :(得分:0)

让我们调用您的游戏对象" G1"和该游戏对象的副本" G2"。

您将删除与G1相关的任何物理,您将从G2中删除渲染器。这个想法是G2是G1的某种物理幽灵。也就是说,G2在没有特殊运动规则的情况下自由移动,从而妥善处理碰撞。然后,您可以偶尔将G1变换更新为G2变换,以直观地创建您想要的动作。