我想将物体指向拉屏的另一侧

时间:2019-02-11 06:29:57

标签: c# unity3d

我想将对象引导到滑动屏幕的另一侧。 该对象已经在场景中。我只想编辑y坐标。

例如...

假设用户从上至下滑动Android屏幕。 然后,物体朝后看, 当用户从左向右滑动Android屏幕时, 该对象向左看。

我掌握了使用Unity官方StandardAssets中的操纵杆更改对象方​​向的技术。

请任何人回答。

1 个答案:

答案 0 :(得分:1)

好吧,首先,您需要检测滑动的方向。然后,分别将对象的比例或旋转方向分配给该方向。

要执行滑动方向计算,您可以在Asset Store上寻找一些解决方案。 或者,您也可以自己实施:

1)进行全屏触摸区域(对撞机)。附加一个实现了IPointerDownHandlerIPointerUpHandler接口的MonoBehaviour脚本。

2)记住PointerDown事件的触摸位置。

3)在PointerUp事件处理程序中,进行方向计算:

    var distance = pointerUpPosition - pointerDownPosition;

    if (distance.y > distance.x) // vertical
    {
       theObject.transform.localScale *= Vector3.up * (pointerUpPosition.y > pointerDownPosition.y ? -1 : 1);
    }
    else
    {
       theObject.transform.localScale *= Vector3.right * (pointerUpPosition.x > pointerDownPosition.x ? -1 : 1);
    }

此解决方案不包括边缘情况f.i.笔直的对角线滑动。此外,它使用比例尺来定向对象,并且每次滑动都会旋转它。

您也可以使用Unity的UI事件系统实现类似的实现。但是,那里的事件会有所不同。