Предисловие: В 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 может быть значением по умолчанию, хотя, как я пытался при различной яркости и всегда получал один и тот же результат. У кого-нибудь есть предложения или исправления?