Tag: Homullus

重新创建本机iOS滚动和动量

我们在Unity中重新创建了iOS原生滚动条,并充满了动力。 我不会显示很多代码,但是我将与您分享Apple本身使用的原理和不可思议的数字。 我可以肯定,我不是唯一一个因在UX时代的2017年并不是每个卷轴都相同而感到高兴的人。 再次考虑,对所有内容进行标准化可能是一个错误的决定,尽管您可能会认为一种涡旋物理比另一种更好,但这实际上是一个见解的问题。 我老板的观点是,我们需要在iOS移动应用程序中实现iOS滚动物理的克隆。 您为什么要在移动应用中使用U nity ? —这就是我每天问自己的问题。 不管为什么,我们都解决了这个问题。 但是我们发现的结果会让您感到惊讶! 是的,我们用C#做到了这一点-但谁在乎,底层算法很重要,而不是语言。 不想听所有的戏吗? 只需滚动到底部。 NGUI和Unity UI 从一开始,我们就知道不可能在Asset Store上找到完成的产品/插件并仅仅实施它,但我也知道我们的老板是一位老派的高级程序员,并且不会拒绝。 因此,我们研究了NGUI和本机Unity UI滚动视图的物理特性。 这太可怕了。 虽然我们无法完全检查Unity UI的内部工作原理,但通过观察我们可以学到很多东西。 简而言之,开发人员似乎很着急,没有花时间对其他平台如何处理UI元素滚动进行适当的研究。 也许他们没有被告知要照顾? 毕竟,Unity UI不能用于完整的移动应用程序(在我们的例子中是社交网络)。 没有平台是相同的,但是到目前为止,我们知道Android和iOS在以下几件事上都达成共识: 在视口之外禁用或重用元素 建立动力并坚持到底 有一些弹簧机制或类似的实现 水平滚动和垂直滚动不应共存 让我们使用字体粗细:1700 对于第一个。 苹果和谷歌有一个很好的理由来解决所有使东西消失或失效的麻烦,即性能问题。 当您使用Unity UI滚动包含10个项目的游戏内菜单时,就纯fps性能而言,它表现良好。 但是,一旦您开始用各自的个人资料图片来表示从Facebook API渲染的所有1244个联系人,那么一切都会变得一团糟。 内存和CPU上升,而fps下降。 我发现iOS使用了一种很酷的技术-它会跟踪元素何时离开视口(为了大家,让我们称之为它)以及何时离开,将元素清空,填充新数据并附加到列表的底部。 因此,列表永远不会有超过12–13个元素一直在被重用。 我们认为此功能是必须的,但稍后会介绍更多。 当然,Unity UI不会这样做,正如我的同事Miloš告诉我的那样,NGUI似乎是一个半开发的系统,从未在任何地方使用过(呵呵,对吗?)。 至于它们的动力和春季选择,我们整天都在对它们进行自定义,但它们从未按预期工作。 将研究转移到网络上 在无奈之下,我在StackOverflow上发布了一个问题(里面有扰流板): 需要帮助剖析并基于PastryKit重新创建完美的滚动缓动 对于Web,我通常只使用本机滚动机制。 它们快速,可靠并且不涉及编码。 但是… stackoverflow.com 对于那些由于剧透而选择不读取S / […]