Я думаю что изменить место положение курсора просто так не получится. Я бы создал иконку на замену стандартного курсора, а стандартный курсор скрыл вроде как то так.
Используется csharp
Screen.showCursor = false;
И затем смещал созданную иконку по координатам мыши как то вот так
Используется csharp
public GameObject MouseIcon;
private Vector3 MousePos;
void Update(){
mousePos = Camera.main.ScreenToWorldPoint(Input.MousePosition);
MouseIcon.Transform.Position = new Vector3(mousePos);
}
Иконки мыши дать какой то тег ну а на стены повесить box collider c галочкой триггер. И если при срабатывании тригера на стене, тег объекта является тег иконки то возвращать позицию иконки в нужную точку. Хотя тут возникает проблема что позиция мышки не изменилась, и при смещении курсор "Телепортируется" на место мышки. Но думаю вы что нибудь придумаете дальше )