提问者:小点点

Unity拖放x和z位置


我尝试在Unity3D中制作一个拖放函数。它应该如何工作:我有一个物体在地面上,我想能够仅仅拖动它在地面周围。
我只想改变x和z的位置。

遗憾的是,没有教程能帮我解决这个问题。我尝试了光线投射和它工作‘选择’对象,但我不能改变位置。我设法编写了一个脚本,向我显示鼠标在世界空间中的位置,但它实际上并不起作用。有人能帮我解释一下代码是怎么工作的吗?

我需要什么步骤来使它工作?


共1个答案

匿名用户

你可以在这里使用光线投射,拖动的时候随着你的位置使用命中点。

void MoveObject()
        {
                RaycastHit hit;
                float movetarget;
                //startPoint = hit.point;
                ray = GetComponent<Camera> ().ScreenPointToRay(Input.mousePosition);
                Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow);
                if (Physics.Raycast(ray, out hit))
                {
                    movetarget = hit.distance;
                    if (activated == false)
                    {
                        wall = Instantiate(prefab, hit.point, prefab.transform.rotation);
                        activated = true;
                    }
                    startPoint = hit.point;
                }
                wall.transform.position = hit.point;    
        }