【发布时间】:2018-01-13 15:47:28
【问题描述】:
我有 2 个对象 - 一个球体和一个立方体。当我拖动球体并用它击中立方体时,立方体正在飞走。即使被另一个(拖动的)对象击中,如何使被击中的对象保持在同一位置?当我检查刚体中的约束-冻结位置时,球体刚刚穿过立方体。
这是我用来拖放的代码(两个对象都附加了该脚本+刚体):
private bool dragging = false;
private float distance;
void OnMouseDown()
{
distance = Vector3.Distance(transform.position, Camera.main.transform.position);
dragging = true;
}
void OnMouseUp()
{
dragging = false;
}
void Update()
{
if (dragging)
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Vector3 rayPoint = ray.GetPoint(distance);
transform.position = rayPoint;
}
}
【问题讨论】:
-
Rigidbody 是否附加到您正在拖动的这个 Object 上?
-
如前所述,两个对象都附加了刚体
标签: c# unity3d drag-and-drop