Как проверить фигуру, нарисованную пользователем в Unity - PullRequest
0 голосов
/ 13 октября 2018

Я создаю приложение в Unity, где пользователю будут представлены изображения в алфавитном порядке, и пользователь сможет отследить символ на изображении, используя свой палец.Я знаю, как выполнить трассировку в Unity, но я не знаю, как проверить, является ли нарисованный пользователем символ правильным или нет.

Например,Пользователю предоставляется изображение символа А. Теперь вместо рисунка Пользователь создает символ Б. Теперь, как я могу убедиться, что пользователь нарисовал неправильный символ, и попросить его повторить попытку.

Как мне добитьсявышеуказанная функциональность?У меня нет кода для этого, так как я не знаю, как с этим справиться.

1 Ответ

0 голосов
/ 15 октября 2018

Вот методология, которую вы можете попробовать:

00.Определите путь, который должен отслеживать пользователь, и сохраните его

Один из способов - разместить объекты gameObjects вдоль пути вашего слова, а затем проверить, отслеживает ли игрок их в той последовательности, которую вы указали.пожелает.Если вы сохраняете их позиции 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.Получите, где этот палец находится на поверхности буквы

Затем вы можете проверить, попадает ли этот Raycast в коллайдер, если вы положили объект письма:

Vector3 hitpoint;

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

Затем вы можетеиспользуйте это положение, чтобы проверить расстояние между пальцем и следующей точкой, которую вы хотите отследить, или если палец находится над текущей точкой в ​​списке, которую пользователь должен получить вправо.

3.Отслеживайте путь, по которому палец проходит по букве

Вы можете использовать список для проверки порядка, по которому отслеживает игрок.

Когда точка отслеживается, установитеследующая точка в списке как следующая цель, и проверьте, пересекает ли ее палец.

Затем можно добавить способ отслеживания задержки между последней отслеживаемой точкой и следующей,так что вы можете использовать это значение, например, для сброса отслеживаемого пути, если пользователь занимает слишком много времени.

...