鼠标拖动物体移动

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;

感谢大佬https://www.jianshu.com/p/a2ab69756cc7

上一篇 下一篇

猜你喜欢

热点阅读