簡體   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