unity中无法实现拖拽
发布网友
发布时间:2022-05-05 21:05
我来回答
共2个回答
热心网友
时间:2022-06-28 02:38
可以用Unity射线判断,也可以用其他插件仿照例子去做,例如:fingergesture 、easytouch 插件。
123456789101112131415161718192021222324252627// 目前鼠标点击和手指拖拽的点击是通用的,代码在这里,你可以试试。 IEnumerator OnMouseDown() { Vector3 ScreenSpace = Camera.main.WorldToScreenPoint(transform.position); Vector3 offset = transform.position-Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,ScreenSpace.z)); Debug.Log("down"); //当鼠标左键按下时 while(Input.GetMouseButton(0)) { //得到现在鼠标的2维坐标系位置 Vector3 curScreenSpace = new Vector3(Input.mousePosition.x,Input.mousePosition.y,ScreenSpace.z); //将当前鼠标的2维位置转化成三维的位置,再加上鼠标的移动量 Vector3 CurPosition = Camera.main.ScreenToWorldPoint(curScreenSpace)+offset; //CurPosition就是物体应该的移动向量赋给transform的position属性 transform.position = CurPosition; //这个很主要 yield return new WaitForFixedUpdate(); } }
热心网友
时间:2022-06-28 02:38
有可能是没有安装对应的功能插件吧。去牛人社找点技术资料学吧,那的资料比较全,有视频、电子书,是不收费的。