![如何才能根据当前桌面背景获取 Unity 用于主题 UI 的色调?](https://linux22.com/image/901732/%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E6%A0%B9%E6%8D%AE%E5%BD%93%E5%89%8D%E6%A1%8C%E9%9D%A2%E8%83%8C%E6%99%AF%E8%8E%B7%E5%8F%96%20Unity%20%E7%94%A8%E4%BA%8E%E4%B8%BB%E9%A2%98%20UI%20%E7%9A%84%E8%89%B2%E8%B0%83%EF%BC%9F.png)
当我的桌面背景发生变化时,我发现 Unity Launcher 的色调会自动更新以适应背景颜色。#这也用于其他 UI 元素,例如仪表板和通知的背景
我现在想以编程方式访问此色调,因为在脚本中使用这种颜色,我计划根据当前色调为其他一些东西设置主题。
在最坏的情况下,我只能使用当前桌面背景图像并计算类似于 Unity 所做的事情以从中获取色调,但我不知道它如何从图像中提取色调。
即使我这样做,它也可能与启动器的外观略有不同,而且看起来不太好看。此外,Unity 已经在后台进行了一些计算来获得这种色调,所以我们不妨重新使用它。
是否有命令可以直接从 Unity 中获取这些信息?Unity 如何做到这一点?
#:一些屏幕截图展示它如何适应背景:
答案1
我认为最简单的方法是根据 xwin 截取应用程序 0 的屏幕截图,这实际上是桌面。据我所知,它根据该值进行外观设置