From b1a50503bb38017f902cb232b489de2de334d62b Mon Sep 17 00:00:00 2001 From: o-tatchan <140692141+o-tatchan@users.noreply.github.com> Date: Wed, 29 May 2024 20:09:23 +0900 Subject: [PATCH] Fix IMUSensor (#161) --- .../UnitySensors/Runtime/Scripts/Sensors/IMU/IMUSensor.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Assets/UnitySensors/Runtime/Scripts/Sensors/IMU/IMUSensor.cs b/Assets/UnitySensors/Runtime/Scripts/Sensors/IMU/IMUSensor.cs index 58338411..553532f5 100644 --- a/Assets/UnitySensors/Runtime/Scripts/Sensors/IMU/IMUSensor.cs +++ b/Assets/UnitySensors/Runtime/Scripts/Sensors/IMU/IMUSensor.cs @@ -48,9 +48,9 @@ protected override void Init() _gravityMagnitude = Physics.gravity.magnitude; } - private void FixedUpdate() + protected override void Update() { - float dt = Time.fixedDeltaTime; + float dt = Time.deltaTime; _position_tmp = _transform.position; _velocity_tmp = (_position_tmp - _position_last) / dt; @@ -58,7 +58,7 @@ private void FixedUpdate() _acceleration_tmp -= _transform.InverseTransformDirection(_gravityDirection) * _gravityMagnitude; _rotation_tmp = _transform.rotation; - Quaternion rotation_delta = Quaternion.Inverse(_rotation_last) * _rotation; + Quaternion rotation_delta = Quaternion.Inverse(_rotation_last) * _rotation_tmp; rotation_delta.ToAngleAxis(out float angle, out Vector3 axis); float angularSpeed = (angle * Mathf.Deg2Rad) / dt; _angularVelocity_tmp = axis * angularSpeed; @@ -66,6 +66,8 @@ private void FixedUpdate() _position_last = _position_tmp; _velocity_last = _velocity_tmp; _rotation_last = _rotation_tmp; + + base.Update(); } protected override void UpdateSensor()