gpt4 book ai didi

android - unity3d 中的能源效率 - 暂停应用程序等待用户交互

转载 作者:可可西里 更新时间:2023-11-01 11:52:56 30 4
gpt4 key购买 nike

我正在寻找一种方法,让我的 unity3d 应用程序在等待用户交互(触摸、鼠标或键盘事件)或计时器(分钟级)时休眠。

与游戏相比,该应用更像是电子书阅读器。最好将用户交互描述为 99% 的时间都在阅读非动画文本墙。有时会有背景声音(最多 5% 的时间),它是通过交互启用的。目标平台为android、ios、webplayer。

即使以正常 FPS 渲染单个纹理也会消耗相当多的能量(用手测量,从字面上看 - 设备很热)。

我的主要问题是我不想一直渲染相机,但我确实需要以尽可能小的延迟对用户输入使用react - 因此降低 FPS 在这里效果不佳(输入等待下一帧)。

那么,我怎样才能以节能的方式停止应用程序等待用户输入呢?也欢迎仅适用于一个平台的提示(例如集成 native API)。

最佳答案

Unity 内部架构是一个游戏。有一个由 Update() 和 Render() 组成的无限循环,它会尽可能快地运行。也许,您可以使用自定义插件更改此行为,因此有选项 №1。

选项 №1。 Unity(仍然)是单线程的。但它是在多线程托管环境中。您可以在脚本中调用 Sleep,应用程序将休眠一段时间,既不调用 Update() 也不调用 Render()。问题是 Unity 在同一个线程中运行它的输入。但理论上您可以创建自定义插件并实现在另一个线程中运行的输入。因此,您将能够使用类似 WaitFor(customInput) 的方法将 Unity 置于有条件的 sleep 状态。当然,您需要为每个平台单独实现插件。

这不是一个简单的答案,是吧?然而还有另一种选择。

选项 №2。如果您减轻工作量,就可以降低功耗(这很明显,我知道)。首先,您的应用不需要每秒 60 帧。寻找Application.targetFrameRate和质量设置中的 vsync(请注意,vsync 会覆盖 targetFrameRate)。其次,缓存您的结果。您可以将复杂场景预渲染到渲染目标中,然后呈现在屏幕上而不是源场景中,直到进行相当大的更改。

关于android - unity3d 中的能源效率 - 暂停应用程序等待用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337479/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com