【发布时间】:2018-08-07 07:24:14
【问题描述】:
我以为我以前有解决问题的方法,但它似乎没有达到应有的效果。基本上,我想使用鼠标在 3D 中移动游戏对象,同时保持 Z 位置不变。如果我单击并拖动游戏对象,它应该跟随光标而不改变其位置的深度。
我的代码是这样的:
screenSpace = Camera.main.WorldToScreenPoint(transform.position);
mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
mouseInWorld = Camera.main.ScreenToWorldPoint(mousePosition);
这效果很好,但是每次我移动对象时深度都会发生轻微的变化。如果我只是这样做,为什么 Unity 不起作用:
mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, gameObject.transform.position.z);
【问题讨论】: