首页 > 解决方案 > 我想将对象指向我拉屏幕的另一侧

问题描述

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

例如...

假设用户从上向下滑动 Android 的屏幕。然后,对象看背面,当用户从左向右滑动Android屏幕时,对象看向左。

我拥有使用 Unity 官方 StandardAssets 中的操纵杆改变对象方向的技术。

请任何人回答。

标签: c#unity3d

解决方案


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

要进行滑动方向计算,您可以在 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);
    }

此解决方案不包括边缘情况,fi 直线对角线滑动。它还使用缩放来定位对象,并且每次滑动都会旋转它。

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


推荐阅读