проблема в том, что ваша мышь на экране - это 2D, а мир - 3D.
ваша мышь может перемещаться вверх и вниз, влево и вправо по экрану, но она никогда не может «входить» или «выходить» из экрана, ее глубина равна нулю.
Таким образом, при преобразовании с мыши в 3D вы должны сами определить глубину.
в этом случае обычно вы просто копируете существующую ось Z, чтобы она была
transform.position = new vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y, transform.position.z);
это не идеально, вы должны создать один экземпляр vector3 и продолжать переназначать его вместо создания новых переменных каждый раз, возможно, и, возможно, переменную Camera.main.ScreenToWorldPoint(Input.mousePosition) только для удобства чтения.