c# - 在unity3d中检测Windows夜灯模式是否
问题描述
我一直在寻找一种方法来使用 c# 在 unity3d 中检测窗口夜灯模式是否打开,但一直无法找到可以在统一中工作的方法。我在这里找到了一个类似问题的帖子,但是这不适用于统一,并且当我尝试统一使用它时给了我这个错误。见这里。我尝试为 System.Environment.UserName 切换注册表。这产生了另一个新错误。请参阅此处的错误 2。如果有人知道如何解决这个问题,如果你能提供帮助,我会很高兴。这是统一拒绝的代码示例:
private static bool IsNightLightEnabled()
{
const string BlueLightReductionStateKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\DefaultAccount\Current\default$windows.data.bluelightreduction.bluelightreductionstate\windows.data.bluelightreduction.bluelightreductionstate";
using (var key = Environment.UserName.OpenSubKey(BlueLightReductionStateKey))
{
//this doesn't matter
}
}
和
private static bool IsNightLightEnabled()
{
const string BlueLightReductionStateKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\DefaultAccount\Current\default$windows.data.bluelightreduction.bluelightreductionstate\windows.data.bluelightreduction.bluelightreductionstate";
using (var key = Registry.OpenSubKey(BlueLightReductionStateKey))
{
//this doesn't matter
}
}
要获取我遇到的错误,请将这些粘贴到 ac# 脚本中并放入统一项目资产中。
解决方案
看起来我不需要对 .NET 框架库项目做任何特殊的事情。找到答案很困难,但我设法将其归结为我的统一偏好。
要解决此问题,您只需打开一个统一项目,转到编辑 > 项目设置 > 播放器。接下来选择 PC 的设置,然后转到其他设置 > 配置 > API 级别兼容性,然后选择 .NET 4.x
这将允许您使用 Unity 项目中的大多数 .NET 4.5 方法功能,包括注册表及其所有方法和字段。
推荐阅读
- json - 菜单结构的 SQL 选择到 JSON
- r - 删除 stat_density_2d 的最低级别/bin?
- python - 如何对预训练模型的附加数据进行部分训练?
- flask - 烧瓶类型错误:validate_on_submit() 缺少 1 个必需的位置参数:'self'
- ios - 如何在 SwiftUI 中将视图与导航栏项目水平对齐
- algorithm - 矩阵求逆、行列式和伴随的空间复杂度
- sql - 使用 v('APP_USER') 作为 Oracle Apex 中列的默认值
- javascript - 页面自动刷新
- java - 需要帮助从 android studio 中的随机字母生成器广播 logcat
- javascript - Javascript 数组在另一个函数中不起作用(未报告错误)