返回「计算机、信息技术与工程」

TimeLine 的 Internal_CreatePlayable 开销很大

TimeLine 的 Internal CreatePlayable 开销很大

更多
Markdown 结构化数据
本文目录 3 个章节

TimeLine 的 Internal_CreatePlayable 开销很大

note · 我的 UWA 问答 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者;回答保留当时语境,技术结论可能受 Unity 版本、平台和项目条件限制。

问题

我们的特效是使用TimeLine进行制作的,最近进行性能测试的时候发现,Internal_CreatePlayable 方法的开销很大,但是只有一个轨道,所以很迷惑这个开销跟什么有关

OBQVIC13HDF4PR1T05K1.png

![VV0ERQW46F48AG~8RK`W.png](/media/6994e478fc316c2c49d3.png)

  • 提问者:张红银
  • 提问时间:2021-05-13 18:21:46

我的回答

Timline首次CreatePlayable就是比较耗时,我这边一个简单的Timeline资源首次耗时500+ms。

image.png

不过可以通过把CreatePlayable的步骤放在场景加载时进行来避免游戏过程中的卡顿。加载Timeline资源后,调用PlayableDirector.RebuildGraph就会进行CreatePlayable,相当于Prewarm。此后,再调用Play(),就不会进行CreatePlayable。再调用RebuildGraph,由于有了缓存,也不会有高耗时。

image.png

下图为首次调用RebuildGraph的耗时。

image.png

下图为第二次调用RebuildGraph的耗时。

image.png

  • 回答时间:2021-05-14 19:51:53
  • 最后更新:2021-05-14 19:51:53
  • 采纳状态:未采纳

来源与关系