// Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _PhysicsProcess(float delta)
    {
        if (Target != null)
        {
            var targetPos = Target.GlobalTransform.Translated(Offset);
            GlobalTransform = GlobalTransform.InterpolateWith(targetPos, LerpSpeed * delta);
            LookAt(Target.GlobalTransform.origin, Vector3.Up);

            if (LockYPos)
            {
                this.SetGlobalOriginY(OriginalPos.y);
            }

            if (LockYRot)
            {
                this.SetGlobalBasisY(OriginalRot.y);
            }

            GlobalTransform = GlobalTransform.Orthonormalized();
        }
    }