-
-
Notifications
You must be signed in to change notification settings - Fork 210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于动画事件机制的疑问 #14
Comments
你分析的非常正确,这个问题我也考虑过。 如果卡顿了很久,那么当卡顿结束后,卡顿的这段时间内所有的event是否需要触发呢,还是跳过?我觉得这个需要看情况,重要的event如果漏了还是需要处理的,非重要的事件可不处理。打个比方,卡顿的这段时间内k了3个events,这3个events会触发3个特效,那我认为这是可以不处理的(非重要),如果处理还会导致3个原本不同步的特效,在卡顿结束后同时播放出来,而且特效和动作也对不上了(显示效果上是不对的)。 我这里的实现比较简单,或者还有其它更好的方法,不知道 Unity 内部是如何处理这种情况的,我没有深入研究过。谢谢你提的建议,如果有好的方法欢迎指正。 |
通常实现都是所有产生时间小于等于当前时间的未触发过的事件都会触发出来。 |
之前手动实现过类似Unity的动画事件,是记录上一帧和当前帧,然后播放这2帧之间的动画事件。这样就可以避免漏事件的问题。 |
按event重要程度分只是临时的设想,没有实现过。当前的实现确实会漏事件,如果用到真实项目是需要修改的。@deltaCN 和 @funnydavid 的方法都很好。 |
提了一个相关的 bug #15,希望使用这个代码的话能注意到问题。 |
@funnydavid 只判断小于等于是有问题的,如果是循环动画 恰好进入了下一次循环 一样会漏事件 |
@deltaCN 的确是的 |
作者实现的动画事件似乎是根据播放时间和fps来计算frameIndex
然后用frameIndex来查找动画事件
如果某一帧卡顿时间特别长,导致越过该帧。是不是有可能导致漏事件?
只是猜测,没有具体验证过。
The text was updated successfully, but these errors were encountered: