关于performance:设置ApplicationtargetFrameRate没有起作用的原因

46次阅读

共计 2106 个字符,预计需要花费 6 分钟才能阅读完成。

1)设置 Application.targetFrameRate 没有起作用的起因
​2)Unity 如何监听程序退出,包含被后盾 kill
3)升高 Mesh LOD 是否会升高片元函数的执行次数
4)TMP SubMeshUI 呈现的起因


这是第 304 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。

UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)

Performance

Q:在代码里设置了 Application.targetFrameRate 并没有起作用,请问是什么起因?

A1:题主能够检查一下引擎设置中 VSync 设置是否开启。如下图,能够调成 Don’t Sync 再试试。

经测试,VSync 敞开时,Application.targetFrameRate 的锁帧成果失常失效;VSync 开启时,理论帧率总是会达到设施反对的最大帧率,从而使 Application.targetFrameRate 的锁帧生效。

举例而言,在小米 10 上进行测试,开启 VSync 后,只管在代码中设置 Application.targetFrameRate=60,但理论帧率会达到 90,从而使得我的项目的 GPU 压力高于预期。

感激 Faust@UWA 问答社区提供了答复

A2:挪动平台会跟手机无关,不会超过最大的刷新率。看下官网文档:
https://docs.unity.cn/cn/2021…

感激 zerolj@UWA 问答社区提供了答复

Android

Q:如果实现了 MonoBehaviour.OnApplicationQuit 这个办法,在 PC 或者编辑器下用能够监听到,然而我发现,公布 Android 时这个函数不会被监听到。

应用 Application.Quit 办法退出能够监听到,然而如果间接被后盾杀死,那么就无奈监听到。

想请问有没有别的办法,能在各种状况下(强制退出或后盾 kill 等)监听到程序退出?

A:将我的项目导出成 Android 我的项目,此时导出的我的项目目录 unityLibrary\src\main\java\com\unity3d\player 下有一份 UnityPlayerActivity.Java 文件,外面的代码是在管制 UnityPlayer 的生命周期。

Android 生命周期:

依据以上周期,游戏失常退出会调用 Quit,零碎杀过程则不会触发 Quit。

所以可能倡议思考一些别的方法。比方 onSaveInstanceState() 和 onRestoreInstanceState() 这两个事件,以及通过编写 Servise 辅助检测 Uniy 我的项目的活动状态。

如果你想编写安卓间接交互 Unity 的代码,也能够像这样写:
mUnityPlayer.UnitySendMessage(“receiveObj”,“UnityMethod”,“This is args.”);

感激 Isle@UWA 问答社区提供了答复

Rendering

Q:镜头固定,如果模型应用 Mesh LOD 请问除了升高顶点函数执行次数,还会升高片元函数次数?

或者影响片元函数的执行次数跟哪些因素无关?

A1:那就只能降屏幕分辨率或者进行深度剔除,AlphaTest 等提前剔除的伎俩。

感激欧月松 @UWA 问答社区提供了答复

A2:补充楼上,次要是看 Primitive 光栅化之后的占屏幕像素数量(这个受到渲染分辨率的影响)。当然还要思考暗藏面打消,Early- Z 等防止 Fragment 计算的因素。

感激 Xuan@UWA 问答社区提供了答复

TextMeshPro

Q:当初在应用 Unity 2019.4.34f1 版本和 TextMeshPro 2.1.6 版本开发性能,在我的项目中有两个字体,Font_Main 和 Font_Main_Fallback。

如果在 Font_Main 设置了 Fallback Font Assets,创立的 TextMeshPro 文本组件下会有一个子节点 TMP SubMeshUI [Font_Test_1 Material + KaiTiJianCu Atlas],而且还无奈删除,删除后会再次主动呈现;如果不设置 Fallback Font Assets,那么就能够把子节点 TMP SubMeshUI [Font_Test_1 Material + KaiTiJianCu Atlas] 删除,请问这个有什么作用?会对性能有影响吗?

A:如果主字体中没有对应的 Unicode 的文字时,就会应用 Fallback 的字体显示。

感激萧小俊 @UWA 问答社区提供了答复

封面图来源于网络


明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)

正文完
 0