Вот что получилось.
Смотреть Только мне не нравится резкие движения игрока когда мышка прямо на нем. Попробовал сделать через проверку на расстояние (то есть не поворачивает если дистанция < 1), но тогда получается другой баг - если провести мышью через игрока и вывести его с другой стороны то он резко повернется назад. Как Вы посоветуете сделать?