繁体   English   中英

我正在尝试从 Android 设备获取用于 Unity 应用程序的光传感器数据

[英]I'm trying to get light sensor data from an Android device for use in a Unity app

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

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

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

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 的默认值。 有没有人有任何建议或修复?

这是修复。

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM