В Интернете я обычно просто использую собственные механизмы прокрутки. Они быстрые, надежные и не требуют кодирования.
Но, работая все больше и больше в Unity, я обнаружил, что доступные плагины для прокрутки, даже такие большие, как Unity.UI или NGUI, просто ужасны. Я поспрашивал и выяснил, что на большинстве платформ так и есть. Физика откровенно плохая.
Я провел кучу исследований и попробовал несколько решений, от NGUI scrollView до веб-iScroll.js и так далее. Я не нашел более совершенного решения, чем оригинальный Apple PastryKit. Теперь PastryKit устарел, устарел, не имеет API и так же труден для чтения, как иероглифы.
Но что важно, так это то, что при его создании им удалось точно воссоздать физическое поведение кинетической прокрутки iOS.
Я не пытаюсь внедрить PastryKit, я пытаюсь выяснить, как он работает. Я пытаюсь понять и воспроизвести.
Я пытаюсь узнать, какие смягчения/формулы они используют и логические условия, в которых они их используют. полный разработчик стека, мне трудно отследить все. И я подумал, что несколько мозгов лучше, чем один, так что давайте посмотрим, кто-нибудь понимает этот файл? :D
https://github.com/jimeh/PastryKit/blob/master/mobile/dist/PastryKit.js
КОРОТКО (во избежание недоразумений): я пытаюсь извлечь из этого файла набор физических правил, которые я могу использовать в качестве руководства для написания собственной реализации прокрутки на любой платформе, которую я выберите. :)
например: «нормальная» прокрутка определяется как {> 300 мс && > 10 пикселей}, Apple использует следующую кривую Безье при ослаблении анимации замедления. кубический-bezier.com/#.25,.46,.1,.94
ОБНОВЛЕНИЕ. Мы решили эту проблему некоторое время назад. Мы узнали, как Apple добивается успеха. https://medium.com/homullus/recreating-native-ios-scroll-and-momentum-2906d0d711ad