鼠标拖动物体移动
2019-07-21 本文已影响0人
pawn_c
简单来说,项目需要用鼠标点击物体然后拖动物体移动。
一开始我想到的方法是:
把鼠标的屏幕坐标转换为世界坐标,在让物体跟着移动,代码如下:
Vector3 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
targetObj.transform.position = new Vector3(position.x, targetObj.transform.position.y, position.z);
一顿操纵后发现物体并没有移动,尴尬。。。。
直到网上看到大佬:直接转换的鼠标位置,是只有X、Y轴,唯独缺了Z轴,所以要把需要跟随物体的Z轴赋予给鼠标屏幕位置,然后再进行转换世界坐标,才能做到效果。
于是:
Vector3 screenPos = Camera.main.WorldToScreenPoint(targetObj.transform.position);
Vector3 mousePos = Input.mousePosition;
mousePos.z = screenPos.z;
Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
targetObj.transform.position=worldPos;