Как определить что игрок двигается в сторону объекта?
1. Определить положение курсора и положение игрока в момент времени X и найти длину вектора по этим точкам;
2. Определить положение курсора и игрока в момент X+n и тоже найти длину вектора;
3. Сравнить длины векторов. Если второе меньше - движется к курсору, если больше - уходит;
4. Плюнуть в лицо тем, кто говорит, что программисту не нужна математика.
Рональд Макдональд Все верно расписал, ну а раз это тема по юнити, то куда же без готового кода xD private GameObject player;
        private float oldSqrMagnitude;
        private Camera camera => Camera.main;

        private void Update()
        {
            var newSqrMagnitude = (player.transform.position - camera.ScreenToWorldPoint(Input.mousePosition)).sqrMagnitude;
            if (newSqrMagnitude > oldSqrMagnitude)
            {
                Debug.Log("дальше");
            }
            else if (newSqrMagnitude < oldSqrMagnitude)
            {
                Debug.Log("ближе");
            }
            else
            {
                Debug.Log("стоит");
            }

            oldSqrMagnitude = newSqrMagnitude;
        }
Однако учтите что тут будет реагировать даже если персонаж стоит на месте, а двигается только мышь. 
Добавить проверки чтобы учитывалось только при движение персонажа думаю не сложно)
Если для ваших целей этот код будет не так точен, то заменить .sqrMagnitude на .magnitude
Так же я бы рекомендовал это считать реже чем каждый кадр) Для этого можно использовать FIxedUpdate, либо корутину. В идеале бы это считать только при изменение положения мыши\персонажа ;)