Как переместить курсор мыши по середине экрана?
Задачу можно решить минимум тремя способами. Какой способ использовать - выбирайте сами.

Способ 1
В классе Cursor наличествует свойство lockState, определяющее поведение и видимость курсора. Сохранив в него значение CursorLockMode.Locked, вы переместите курсор в центр ОКНА ИГРЫ и скроете. Затем туда нужно сохранить значение Cursor.lockState = CursorLockMode.None, что разблокирует курсор и сделает видимым. Есть только одна проблема - эта операция работает не мгновенно, потому применить их последовательно не получится. Выглядеть код будет как-то так

using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

	private void Start() {
		Cursor.lockState = CursorLockMode.Locked;
		Invoke("UnlockCursor", 0.05f);
	}

	private void UnlockCursor() => Cursor.lockState = CursorLockMode.None;	

}

Способ 2
Если вы используете New Input System, то вам доступна опция InputState.Change, которую, в контексте вашей задачи, можно использовать так:

using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

	private void Start() {
		var center = Screen.safeArea.center;
		Mouse.current.WarpCursorPosition(center);
		InputState.Change(Mouse.current.position, center);
	}

}

Способ 3
Можно воспользоваться поддержкой нативных библиотек ОС. Правда, тут придётся подключить платформозависимую компиляцию. Например, для Windows:

using System.Runtime.InteropServices;
using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

#if UNITY_STANDALONE_WIN

	[DllImport("user32.dll")]
	static extern bool SetCursorPos(int X, int Y);

	private void Start() {
		var center = Screen.safeArea.center;
		SetCursorPos((int)center.x, (int)center.y);
	}

#endif

}
Лочите в центре, а потом освобождаете.

https://docs.unity3d.com/ScriptReference/Cursor-lo...