我正在使用 Unity 开发 PC 游戏。我想让游戏的 UI 主题与设备的主题(深色/浅色)相同。有没有C#方法/变量查询播放器Windows的颜色主题(如果windows 10 =<)?
您可以使用 Windows 注册表来检测用户 Windows 系统当前的颜色主题。下面是如何在 C# 中实现它的方法:
using Microsoft.Win32;
public static bool IsWindowsInDarkMode()
{
const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
const string valueName = "AppsUseLightTheme";
int lightTheme = 0;
int darkTheme = 1;
int registryValue = (int)Registry.GetValue(keyName, valueName, lightTheme);
return registryValue == darkTheme;
}
如果值为0,则用户选择了深色主题。如果值为 1,则用户选择了浅色主题。
您可以调用此方法来检测用户Windows系统当前的颜色主题,然后使用该信息来设置游戏的UI主题。