我可以使用点云将一个物体放在一个平面上,但现在我想弄清楚当我在屏幕上拖动手指时如何在同一平面上移动物体。有人在Unity中做过这个吗?
在每次手指移动时调用pointCloud.FindPlane以找到手指下的平面并不是很有效。任何人都可以提出更好的方法吗?
答案 0 :(得分:1)
我建议您查看ExperimentalFloorFinding
这是Scene
项目文件夹中的示例Unity
。我相信这正是你想要实现的目标。只需双击Unity
中的演示场景即可。希望对你有帮助。
答案 1 :(得分:0)
我所做的是在删除对象的位置调用findplane方法。我在Unity中做到了这一点,拖动有点捡起来,所以这对我的用例很有意义。
答案 2 :(得分:0)
您可以跟踪手指移动并将其移动到对象的本地位置。
这样的事情:
private bool firstClick = false;
private Vector3 oldMousePosition;
private Vector3 newMousePosition;
void Update ()
{
if (Input.GetMouseButtonDown(0))
{
if (!firstClick)
{
firstClick = true;
oldMousePosition = Input.mousePosition();
}
else
{
newMousePosition = Input.mousePosition();
Vector3 offset = oldMousePosition - newMousePosition;
oldMousePosition = newMousePosition();
transform.localPosition += offset;
}
}
if (Input.GetMouseButtonUp(0))
firstClick = false;
}