为什么我的玩家在Z = 990时随机停止前进

问题描述 投票:0回答:1

我有一个游戏,我的玩家需要不停地向前移动,有时他会停止在Z = 990移动,如果我让他在编辑器上移动一点点他再次开始移动。

EX:https://youtu.be/A0FB595AdHI

void FixedUpdate () {

    if(forwardSpeed < maxSpeed)
    {
        forwardSpeed += Time.deltaTime * speedIncrementor;
    }

    rb.velocity = new Vector3(0, rb.velocity.y, forwardSpeed * Time.deltaTime);

    if (forwardSpeed > maxSpeed)
    {
        forwardSpeed = maxSpeed;
    }
}
c# unity3d velocity
1个回答
0
投票

Time.deltaTime不是物理时间步长。

Time.deltatime(最后一帧的持续时间)每帧调用仅应使用一次,例如Update()调用。

Time.fixedDeltaTime只能在FixedUpdate()中使用,因为它是物理循环的采样时间

如果这不能解决问题,你可以简单地使用重新启动地形逻辑的逻辑。这意味着它将从游戏对象开始移动的那一刻开始运行

© www.soinside.com 2019 - 2024. All rights reserved.