Страница 1 из 1

Как считывать длинну свайпа

СообщениеДобавлено: 14 июл 2018, 22:10
fsgdoterr
Как считывать длинну и скорость свайпа ?

Re: Как считывать длинну свайпа

СообщениеДобавлено: 14 июл 2018, 22:26
1max1
Длина -> Отрезок от точки начала свайпа до точки конца, то есть тыкнули пальцем - это точка старта, поелозили, оторвали - это точка конца, как найти длину вектора думаю знаешь.
Скорость -> Длина деленная на время от начала старта до конца, то есть если ткнули пальцем, запустился таймер, проелозили 10 юнитов к примеру, оторвали палец, таймер остановили, к примеру таймер показывает 2 секунды, значит скорость была 10 / 2 = 5 юнитов в секунду.

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

Re: Как считывать длинну свайпа

СообщениеДобавлено: 14 июл 2018, 23:11
fsgdoterr
1max1 писал(а):Длина -> Отрезок от точки начала свайпа до точки конца, то есть тыкнули пальцем - это точка старта, поелозили, оторвали - это точка конца, как найти длину вектора думаю знаешь.
Скорость -> Длина деленная на время от начала старта до конца, то есть если ткнули пальцем, запустился таймер, проелозили 10 юнитов к примеру, оторвали палец, таймер остановили, к примеру таймер показывает 2 секунды, значит скорость была 10 / 2 = 5 юнитов в секунду.

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

Я новичек, и плохопонимаю, можешь код написать если не трудно?)

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 08:52
Cr0c
fsgdoterr писал(а):Я новичек, и плохопонимаю, можешь код написать если не трудно?)

Код тут мало поможет. По пунктам разбирай алгоритм.

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 08:58
1max1
Почему не поможет, человек хочет чтобы за него всё сделали, зачем думать самому верно?

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 09:55
Cr0c
1max1 писал(а):Почему не поможет, человек хочет чтобы за него всё сделали

Exactly!

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 10:45
fsgdoterr
1max1 писал(а):Длина -> Отрезок от точки начала свайпа до точки конца, то есть тыкнули пальцем - это точка старта, поелозили, оторвали - это точка конца, как найти длину вектора думаю знаешь.
Скорость -> Длина деленная на время от начала старта до конца, то есть если ткнули пальцем, запустился таймер, проелозили 10 юнитов к примеру, оторвали палец, таймер остановили, к примеру таймер показывает 2 секунды, значит скорость была 10 / 2 = 5 юнитов в секунду.

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

Синтаксис:
Используется csharp
if (Input.touchCount == 1)
            {
                Touch touch = Input.GetTouch(0);

                if (touch.phase == TouchPhase.Began)
                    _begin = touch.position;
                else if (touch.phase == TouchPhase.Ended)
                    _distance = Vector3.Magnitude(touch.position - _begin);
            }
 

так будет норм?

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 11:22
1max1
Выглядит логично...

Re: Как считывать длинну свайпа

СообщениеДобавлено: 15 июл 2018, 19:53
Cr0c
Только тут длина в пикселях экрана

Re: Как считывать длинну свайпа

СообщениеДобавлено: 16 июл 2018, 12:10
Nubila
А если через:
Синтаксис:
Используется csharp
 
            var clickDown = Input.GetMouseButtonDown(0);
            var clickUp = Input.GetMouseButtonUp(0);
            if (clickDown)
            {
                _begin = mainCam.ScreenToWorldPoint(Input.mousePosition);
            }
            else if (clickUp)
            {
                _distance = Vector2.Distance(mainCam.ScreenToWorldPoint(Input.mousePosition), _begin);
            }

Это будет дешевле чем создание объекта Touch или ScreenToWorldPoint кроет в себе что то потяжелее чем GetTouch?

Re: Как считывать длинну свайпа

СообщениеДобавлено: 16 июл 2018, 12:17
Cr0c
Это нормально, не полсотни раз за кадр вызываешь же. Да и Touch - структура, а не класс. Можно не GetTouch, а touches[0]