C# 统一拖放x和z位置

C# 统一拖放x和z位置,c#,unity3d,C#,Unity3d,我尝试在Unity3D中创建一个拖放功能。 工作原理: 我在地面上有一个物体,我希望能够在地面上拖动它。 我只想改变x和z的位置 遗憾的是,没有任何教程可以帮助我解决这个问题。 我尝试了光线投射,它可以“选择”对象,但我无法更改位置。 我设法写了一个脚本来显示鼠标在世界空间中的位置,但它并没有真正起作用。 有人能帮我解释一下代码是如何工作的吗 要使其工作,我需要执行哪些步骤?您可以在此处使用光线投射,并在拖动时在定位时使用命中点 void MoveObject() {

我尝试在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;    
        }
void MoveObject()
{
雷卡斯特击中;
浮动目标;
//起始点=命中点;
ray=GetComponent().ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin,ray.direction*100,Color.yellow);
如果(物理.光线投射(光线,出击))
{
移动目标=命中距离;
如果(激活==错误)
{
墙=实例化(预置、点击、预置、变换、旋转);
激活=真;
}
起始点=命中点;
}
wall.transform.position=hit.point;
}

您需要共享您尝试的代码片段,这些代码片段非常特定于您的问题指定的流程。这将提高读者对问题的理解,并能为您提供解决方案。