代码之家  ›  专栏  ›  技术社区  ›  Vivek Mishra

如何统一验证用户绘制的图形

  •  -1
  • Vivek Mishra  · 技术社区  · 6 年前

    我在Unity创建一个应用程序,用户将通过字母表图像显示,用户将能够使用手指跟踪图像中的字符。我知道如何在Unity中执行跟踪部分,但我不知道的是如何验证用户绘制的字符是否正确。

    例如,用户看到的是一个字符A的图像。现在不绘制用户的字符B。现在我如何验证用户绘制了错误的字符并要求他再试一次。

    如何实现上述功能?我没有这方面的任何代码,因为我不知道如何进行这个。

    1 回复  |  直到 6 年前
        1
  •  1
  •   a_rrats    6 年前

    你可以试试以下方法:

    0定义用户必须跟踪的路径,并将其存储

    一种方法是沿着你的单词路径放置游戏对象,然后检查玩家是否按照你想要的顺序跟踪它们。 如果您将它们的Vector3或Vector2位置存储在一个列表中,那么您就可以轻松地访问要播放的路径中的上一个/下一个点。

    我会将它们存储为Vector2值的列表。

    你的目标应该是这样的:

    - LETTER with script with Vector2 list + a collider (for Raycasting)
    ---- point1
    ---- point2
    ---- point3
    

    1找到手指的位置

    可以使用Screenpoint to Ray获取手指的位置:

    Touch touch = Input.GetTouch(0);
    Vector2 fingerPos = new Vector2(touch.position.x, touch.position.y);
    ray = Camera.main.ScreenPointToRay(fingerPos);
    

    2把手指放在信的表面

    Vector3 hitpoint;
    
        if (Physics.Raycast(ray, out hit))
        {
           hitpoint = hit.point;
        }
    

    然后可以使用此位置检查手指与要跟踪的下一个点之间的距离,或者如果手指位于列表中的当前点上,则用户必须正确定位。

    你可以用这个列表来检查玩家追踪的顺序。

    当追踪到一个点时,将列表中的下一个点设置为下一个目标,并检查手指是否越过它。

    然后,您可以添加一种方法来跟踪跟踪上一个点和下一个点之间的延迟,因此您可以使用此值,例如,在用户花费太长时间时重置跟踪路径。