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