Что это: singleton-компонент для мышиного ввода без лишних аллокаций в кадре. Он собирает Press, Hold, Release, Click, делает 2D/3D raycast по слоям и сохраняет последнее событие в MouseEventData.
Файл: Assets/Neoxider/Scripts/Tools/Input/MouseInputManager.cs
MouseInputManager можно использовать как scene component или как автоматически создаваемый runtime singleton. Для production-сцен лучше явно назначать targetCamera в Inspector или через SetTargetCamera(Camera). Camera.main остается только отключаемым fallback и не дергается каждый кадр без retry interval.
- Добавьте
MouseInputManagerна сцену один раз или позвольте bootstrap создать его автоматически. - Назначьте
targetCameraявно. Для простых сцен можно оставитьuseMainCameraFallback. - Настройте
interactableLayersиfallbackDepth. - Включите нужные режимы:
enablePress,enableHold,enableRelease,enableClick. - Подпишитесь на события или используйте
LastEventData/HasEventDataдля polling.
| Поле/API | Назначение |
|---|---|
targetCamera |
Камера для ScreenPointToRay и ScreenToWorldPoint. |
useMainCameraFallback |
Разрешает поиск Camera.main, если явная камера не задана. |
cameraFallbackRetryInterval |
Интервал между попытками Camera.main, пока камера отсутствует. |
logMissingCamera |
Разрешает warning через NeoDiagnostics; глобальный diagnostics gate все равно контролирует вывод. |
SetTargetCamera(Camera) |
Явная injection-точка из C# или scene setup. |
TargetCamera |
Текущая активная ссылка. |
OnPress,OnHold,OnRelease,OnClickOnPressIn,OnHoldIn,OnReleaseIn,OnClickIn
MouseEventData содержит ScreenPosition, WorldPosition, HitObject, Hit3D, Hit2D.
MouseInputManagerSubsystemRegistrationперед загрузкой сцены включаетCreateInstance = true.- При subsystem/domain reload очищаются
LastEventDataиHasEventData. - Runtime singleton cache очищается общим
SingletonRuntimeReset. - Встроенной блокировки ввода поверх UI через
EventSystemнет; если она нужна, добавляйте отдельный фильтр поверх событий.