首页 文章

将3d对象移动到单击鼠标单击位置

提问于
浏览
0

我创造了一个团结的场景 . 我将相机和3d统一立方体对象添加到场景中 . 要将对象移动到鼠标单击位置,我添加了光线投射并且它可以工作 .

但我想用我的模特 . 我有一个 objmtl 文件 . 我将它们复制到 Assets 文件夹 . 我使用下面的代码 . 对象移动但不完全是我的点击位置 .

Plane plane = new Plane(Camera.main.transform.forward, transform.position);
        pos = Input.mousePosition;
        Ray ray = Camera.main.ScreenPointToRay(pos);
        float dist;
        if (plane.Raycast(ray, out dist))
        {
            Vector3 v = ray.GetPoint(dist);
            objectPos = v;
        }

        transform.position = objectPos;

模型的来源不是(0,0,0) . 我从一个大的3D模型切割这个对象 .

我尝试移动到 (Screen.width/2, Screen.Height/2, 0.0f) ,结果如下

EDIT
enter image description here

EDIT 2

我将 box collider 添加到object . 但是对撞机位置与对象不同 .
enter image description here

1 回答

  • 0

    您必须移动对象的空点或保存一个变量,该变量表示必须移动它的向量,并将其添加到objectPos befor设置 transform.position

相关问题