Я пытаюсь получить данные датчика освещенности от устройства Android для использования в приложении Unity - PullRequest
0 голосов
/ 03 апреля 2020

Предисловие: В 2016 году Ice-Blaze опубликовал пост, в котором об этом говорится, его решение больше не работает.

Я пытался использовать его плагин, и он, похоже, не передает данные и не извлекает данные датчика освещенности. В этом процессе я построил свой собственный плагин в виде библиотеки .aar / Android, по какой-то причине я могу передавать предопределенные данные stati c из .aar в приложение Unity, но не могу успешно получать легкие данные. Я полагаю, что это связано с получением легких данных, требующих базовую активность приложения, и я не уверен, как создать их для .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 может быть значением по умолчанию, хотя, как я пытался при различной яркости и всегда получал один и тот же результат. У кого-нибудь есть предложения или исправления?

1 Ответ

0 голосов
/ 03 апреля 2020

Вот исправление.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...