3.8.4 ScrollView在手机浏览器滚动卡顿 有解决方案么?

我回家弄个demo传上来

Demo.zip (32.4 KB)
creator3.8.4 的 deno 文件,只有个 scene 和一个 prefab

我的是 android 手机 用手机浏览器或者微信扫码 测 scrollview 的滚动 卡顿很明显
我3个同事的 ios 手机 scrollview 滚动卡顿比 android 手机更严重

ScrollView 的 Brake 惯性减速的时候,感觉UI控件一抖一抖的,特别是Label

滚动数据不平滑 ,快慢交替, 抖动

这组是向上滚动,y轴每帧增加高度


确实是滚动减速不平滑

貌似找到问题了 应该和帧率有关
手机刷新率设置成90 游戏帧率60不变 卡顿更明显了

暂时的解决方案 修改游戏帧率

game.frameRate = 240;

屏幕实际刷新率有多少,游戏的FPS就是多少
手机锁60帧,游戏里FPS60
手机锁90帧,游戏里FPS90
手机锁120帧,游戏里FPS120
手机开120帧省电动态降帧,游戏的FPS会根据屏幕刷新率动态变动

市面上现在手机有60帧的、90帧的、120帧的、144帧的、165帧的,240帧的倒是没见到,不过过不了几年也会出现。

用户买高刷屏手机就是为了流畅,还有一部分就是为了玩游戏,习惯了高刷屏的用户去看60或者30帧的画面就会感觉不流畅,卡卡的感觉。

看后面官网会不会弄渲染分离,逻辑帧60,渲染帧根据手机刷新帧率来。

难道帧率和刷新率不一至时,计算不准有跳帧的可能

其实只细看还是有轻微的跳帧 只是不那么明显了

以前旧版本,是非常丝滑,设置60时候,
是不锁帧的,默认用是浏览的实际刷新率

我有个猜测
手机帧90 游戏帧60 到61~90帧就等待在那里的

这是肯定,引擎要做延时,然后运行行下一帧

我猜错了,是渲染跳帧。
手机锁90帧,每帧11.11毫秒左右
游戏60帧,每帧16.66毫秒左右

手机渲染第1帧,游戏渲染第1帧,
手机渲染第2帧,游戏不渲染,
手机渲染第3帧,游戏渲染第2帧,
dt快慢交替,

加上现在高刷屏手机,为了省电有自动降手机帧率的功能,
手动滑 scrollview 时手机帧120,松开自动滚的时候,手机从120帧降到60帧这过程,dt的波动就更大了,给人的视觉就感觉更卡了

dt浮动大,算出来就不平稳

所以解决办法是?

1.修改引擎,不锁帧率,同步浏览器刷新

2.看看官方或其他大佬,有没更稳定合理计算方式

手机帧锁定90,游戏frameRate=60

强制修改 scrollview 自动滚动的逻辑帧,还是卡

等待官网或者大佬给个好的解决方案吧

大家还没找到解决方法吗

调高游戏帧率 game.frameRate = 240;

原理上面应该算解释得很清楚了

你想在电脑上复现 把frameRate改成40 大部分的显示器刷新率都是60 就能在电脑上看到卡顿的效果了

我们之前特意把游戏帧率降低了,帧率调高在ios下发热及其严重