使Unity3d脚本运行速度更快或加速集成问题



我正试图在我的Unity项目中使用IMU实现"航位推算"。目前我不能得到好的结果:速度变为负,所以角色向后移动,或者角色有时在IMU向前移动后来回移动。我怀疑脚本被调用的频率没有IMU数据发送频率高,或者我的脚本不正确。有没有一种方法可以让方法/脚本更频繁地被调用?或者是我在代码中做错了什么:

    /// <summary>
    /// This is the coroutine called in the start Method. It keeps running in the background and keeps track of the user making steps.
    /// </summary>
    /// <returns>WaitForSeconds</returns>
    IEnumerator StepcounterLeft()
    {
        float prev_zVel = 0;
        float prev_zAcc = 0;
        for (var a = 0; a < 1;)
        {
            yield return new WaitForSeconds(0.0001f);
            float zAcc = (float)vn100l.CurrentMeasurements.LinearAccelerationBody.Z;
            float zVel = prev_zVel + (prev_zAcc + ((zAcc - prev_zAcc)/2.0f)*Time.deltaTime);
            if (zVel > -0.1 && zVel < 0.1)
                zVel = 0;
            speed = zVel / 10;
            prev_zVel = zVel;
            prev_zAcc = zAcc;
            if ((zAcc > -0.1 && zAcc < 0.1) && (prev_zAcc > -0.1 && prev_zAcc < 0.1))
                prev_zVel = 0;
        }
    }

通过System.Threading创建一个新线程的速度为0.001秒。要从加速度计中读取所有值,我需要0.000008秒的速度,但这似乎是它能达到的最快速度。

相关内容

  • 没有找到相关文章

最新更新