我尝试在Unity3D中制作一个拖放函数。它应该如何工作:我有一个物体在地面上,我想能够仅仅拖动它在地面周围。
我只想改变x和z的位置。
遗憾的是,没有教程能帮我解决这个问题。我尝试了光线投射和它工作‘选择’对象,但我不能改变位置。我设法编写了一个脚本,向我显示鼠标在世界空间中的位置,但它实际上并不起作用。有人能帮我解释一下代码是怎么工作的吗?
我需要什么步骤来使它工作?
你可以在这里使用光线投射,拖动的时候随着你的位置使用命中点。
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;
}