美文网首页多媒体和建模
【Unity3D】使用鼠标控制物体在世界坐标中移动

【Unity3D】使用鼠标控制物体在世界坐标中移动

作者: 壹米玖坤 | 来源:发表于2017-03-03 20:49 被阅读1008次

    public class Move : MonoBehaviour {

         public GameObject cube;  //要拖拽的物体

        Vector3 mouseV3;    //鼠标

        Vector3 screeenV;  //存储cube的屏幕坐标

        Vector3 world;    //记录鼠标坐标转成的世界坐标

    void Update() {

    if (Input.GetMouseButtonDown(0)) {

                  //当鼠标第一次单击时记录下cube在场景中的坐标,并把世界坐标转成屏幕坐标

                screeenV= Camera.main.WorldToScreenPoint(cube.transform.position);

    }

    if (Input.GetMouseButton(0)){

                        mouseV3 = Input.mousePosition;  //当鼠标移动时记录下鼠标的坐标

                       mouseV3.z = screeenV.z;  //因为鼠标的z坐标为0,所以需要一个z坐标

                      //把鼠标的屏幕坐标转换成世界坐标

                      world = Camera.main.ScreenToWorldPoint(mouseV3);

                     //当鼠标移动时,cube也发生移动,为了让cube的y轴不发生移动,设y轴为原来的y轴

                      cube.transform.position = new Vector3(world.x, cube.transform.position.y, world.z);

                     print(cube.transform.position);

             }

       }

    }

    相关文章

      网友评论

        本文标题:【Unity3D】使用鼠标控制物体在世界坐标中移动

        本文链接:https://www.haomeiwen.com/subject/howrgttx.html