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;
}
}