void OnSetTarget(Vector3 pos)
    {
        var v0 = targetPos - previousPos;

        targetPos   = pos;
        previousPos = transform.position;
        var v1 = targetPos - previousPos;

        if (moveCurve == null)
        {
            moveCurve = new CoonsCurve(previousPos, targetPos, v0, v1);
        }
        else
        {
            moveCurve.SetVertices(previousPos, targetPos, v0, v1);
        }
        timeTargetUpdated = Time.timeSinceLevelLoad;
    }