void FixedUpdate()
        {
            HandleVisibility();
            if (escalator.GetTargetPointFromDestination(nextDestination) == transform.localPosition)
            {
                if (!escalator.reversed)
                {
                    if ((int)nextDestination < 7)
                    {
                        nextDestination = (EscalatorPro.Destination)((int)nextDestination + 1);
                    }
                    else
                    {
                        nextDestination = (EscalatorPro.Destination) 0;
                    }
                }
                else
                {
                    //The escalator is reversed!
                    ReverseDirection();
                }

                BeginTween();
            }

            if (escalator.stopped)
            {
                return;
            }

            var calculatedPos = transform.parent.TransformPoint(Vector3.MoveTowards(body.transform.localPosition, targetPos, escalator.speed * Time.deltaTime * 3));

            body.MovePosition(calculatedPos);
        }