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