0

前言:Ice-Blaze 在 2016 年发表的一篇文章涵盖了这一点,他的解决方案不再有效。

我试过使用他的插件,它似乎没有传递数据或检索光传感器数据。在这个过程中,我以 .aar/Android 库的形式构建了自己的插件,无论出于何种原因,我都可以将预定义的静态数据从 .aar 传递到 Unity 应用程序,但无法成功检索光照数据。我相信这与检索需要基本 App-Activity 的光数据有关,我不确定如何为 .aar 而不是 .apk 构建它。

所以现在我开始尝试在 Unity 中严格工作并完全跳过插件。现在这就是我的更新函数的样子:

Update()
 {
    InputSystem.DisableDevice(LightSensor.current);
    InputSystem.EnableDevice(LightSensor.current);

        if (LightSensor.current.enabled)
        {
            var CurrentLight = LightSensor.current.samplingFrequency;
            DisplayLight = (float)CurrentLight;
        }
        Light.value = (float)DisplayLight;
}

所以在这里你可以看到,在每次更新时,我都会禁用设备,只是为了重新启用它。我走这条路的原因是因为这似乎只在开始时获得一次光数据,所以我认为禁用/重新启用可能会迫使它不断地重新检查光值。现在我得到一个初始值 50 并且没有更新,虽然我在不同的亮度下尝试过并且总是得到相同的结果,但它可能是一个默认值 50。有没有人有任何建议或修复?

4

1 回答 1

0

这是修复。

Update()
 {
    InputSystem.DisableDevice(LightSensor.current);
    InputSystem.EnableDevice(LightSensor.current);

        if (LightSensor.current.enabled)
        {
            var CurrentLight = LightSensor.current.lightLevel.ReadValue(); // <= change here
            DisplayLight = (float)CurrentLight;
        }
        Light.value = (float)DisplayLight;
}
于 2020-04-03T01:04:26.753 回答