Во-первых, я владею Unity Pro.
Я искал оглушающие источники света, когда их некоторое время не просматривали, чтобы улучшить производительность. Основными методами, с которыми я столкнулся, было использование BecameVisible () и тестирование усеченной камеры.
Моя главная проблема заключалась в том, что если игрок просматривает область, которая будет освещена светом, я все равно хочу, чтобы свет был включен.
В настоящее время я использую метод, который проверяет, находится ли освещенная область в усеченной камере, но проблема в том, что иногда огни находятся в усеченной зоне, когда игрок фактически их не видит (например, стена между ними и игроком). Я пробовал использовать их с помощью радиопередачи, но вы никогда не сможете получить достаточно подробные сведения о фактической освещенной области (лучшее, что я мог определить, было использовать renderer.bounds.extent и renderer.bounds.center для расчета максимальных освещенных точек от источника света).
Кто-нибудь знает о простом способе в Unity Pro перекрывать свет? Или не могли бы вы сказать мне хороший способ использовать тот метод опоры камеры, о котором я говорил?
источник
Ответы:
Вы можете написать свой собственный сценарий, чтобы перекрыть свет. Нечто подобное прикреплено к основной камере:
Вы также можете проверить, находится ли точка в пределах угла на оси Y камеры (другие оси просто причинят вам боль). Будьте немного щедры с углом, возможно, в 2 раза больше, чем у камеры, чтобы свет не выключался, когда они освещали области в поле зрения камеры. Если вы решите добавить эту дополнительную оптимизацию (которая, вероятно, не понадобится), убедитесь, что вы используете расстояние в качестве широкой фазы, потому что оно намного дешевле.
источник