public override void Write(float value)
        {
            state = value * StepLength;
            if (DoApplyUnityJointLimits)
            {
                ApplyLimits();
            }

            jointStateWriter.Write(state);
        }
        private void ProcessMessage()
        {
            float deltaTime = Time.timeSinceLevelLoad - lastMessageTime;

            state += currentAxisValue * MaxVelocity * deltaTime;
            if (useLimits)
            {
                ApplyLimits();
            }

            lastMessageTime = Time.timeSinceLevelLoad;

            jointStateWriter.Write(urdfJoint.IsRevoluteOrContinuous ? state * Mathf.Deg2Rad : state);
            isMessageReceived = false;
        }