ImGui
Только client ImGui недоступен в server.lua Reflex-модуля.
Где появляется результат
Заголовок раздела «Где появляется результат»| API | Область отображения |
|---|---|
Глобальные ImGui:Draw*() |
Непосредственно поверх всего игрового экрана. Положение задаёт сам модуль. |
ImGui:DrawDebugText() |
Встроенный отладочный блок у края экрана. |
Методы ImGuiWindow |
Внутри отдельного HUD-окна, которое игрок может перемещать и масштабировать в редакторе интерфейса. |
Отрисовка выполняется напрямую и не зависит от встроенного HUD-модуля. Все элементы существуют только в кадре, в котором был вызван соответствующий метод.
Как работает ImGui
Заголовок раздела «Как работает ImGui»ImGui рисует элементы только в текущем кадре. Чтобы текст или изображение оставались на экране, вызывайте методы рисования из Scheduler:OnFrame().
Scheduler:OnFrame(function() ImGui:DrawText( "Tick: " .. tostring(Time.Tick), Rect.new(20, 20, 280, 36), 18, Color.new(1, 1, 1), TextAnchor.MiddleLeft )end)Окна создаются один раз при загрузке модуля. Перерисовывать каждый кадр нужно только их содержимое.
Координаты
Заголовок раздела «Координаты»DrawText(),DrawTextPos()и глобальные методы текстур используют экранные координаты в пикселях. Начало координат находится в левом верхнем углу.DrawTextUV()использует нормализованные координаты viewport:(0, 0)— левый нижний угол,(1, 1)— правый верхний.- Методы
ImGuiWindowиспользуют координаты внутри содержимого окна.
Глобальный слой быстрого интерфейса.
DrawDebugText
Заголовок раздела «DrawDebugText»ImGui:DrawDebugText(text: string)Добавляет строку в отладочный блок у края экрана. Несколько вызовов в одном кадре располагаются друг под другом. Возвращает nil.
DrawText
Заголовок раздела «DrawText»ImGui:DrawText( text: string, rect: Rect, fontSize: number = 11, color: Color? = nil, alignment: TextAnchor = TextAnchor.MiddleCenter)Рисует текст внутри указанной экранной области. Если color не передан, используется встроенный светлый цвет текста. Возвращает nil.
DrawTextPos
Заголовок раздела «DrawTextPos»ImGui:DrawTextPos( text: string, screenPosition: Vector2, fontSize: number = 11, color: Color? = nil, alignment: TextAnchor = TextAnchor.MiddleCenter)Рисует текст в экранной позиции и автоматически подбирает область под содержимое. Возвращает nil.
DrawTextUV
Заголовок раздела «DrawTextUV»ImGui:DrawTextUV( text: string, viewportPosition: Vector2, fontSize: number = 11, color: Color? = nil, alignment: TextAnchor = TextAnchor.MiddleCenter)Рисует автоматически размеренный текст в нормализованной позиции viewport. Значения преобразуются относительно текущих Screen.Width и Screen.Height. Возвращает nil.
DrawTexture
Заголовок раздела «DrawTexture»ImGui:DrawTexture(texture: Texture, rect: Rect? = nil)Рисует Texture в указанной экранной области. Если rect не передан, используется вся доступная область глобального слоя. Возвращает nil.
DrawTextureColor
Заголовок раздела «DrawTextureColor»ImGui:DrawTextureColor(texture: Texture, color: Color, rect: Rect? = nil)Рисует текстуру с цветовой маской. Альфа-канал color управляет прозрачностью. Возвращает nil.
AddImGuiWindow
Заголовок раздела «AddImGuiWindow»ImGui:AddImGuiWindow(id: string, title: string, rect: Rect): ImGuiWindowСоздаёт плавающее HUD-окно, положение и размер которого пользователь может настроить в редакторе интерфейса.
idдолжен быть непустым и уникальным внутри модуля;titleотображается в заголовке окна;rectзадаёт начальную позицию и размер в экранных пикселях;- один модуль может создать не больше 16 окон.
Возвращает ImGuiWindow. Для пустого id или после достижения лимита возвращает nil.
ImGuiWindow
Заголовок раздела «ImGuiWindow»Плавающее HUD-окно, созданное через ImGui:AddImGuiWindow().
Быстрый пример
Заголовок раздела «Быстрый пример»local window = ImGui:AddImGuiWindow( "status", "Module status", Rect.new(40, 120, 320, 140))
if window ~= nil then window:SetVisibilityTypes({ WindowVisibilityType.Match, WindowVisibilityType.Spectate, })
Scheduler:OnFrame(function() window:DrawText( "Module is active", Rect.new(12, 12, 296, 32), 18, Color.new(0.4, 1, 0.5), TextAnchor.MiddleLeft ) end)endDrawText
Заголовок раздела «DrawText»ImGuiWindow:DrawText( text: string, rect: Rect, fontSize: number, color: Color, alignment: TextAnchor = TextAnchor.MiddleCenter)Рисует текст внутри содержимого окна. В отличие от глобального DrawText(), размер шрифта и цвет обязательны. Возвращает nil.
DrawTexture
Заголовок раздела «DrawTexture»ImGuiWindow:DrawTexture(texture: Texture, rect: Rect? = nil)Рисует текстуру внутри окна. Если rect не передан, изображение занимает всю доступную область содержимого. Возвращает nil.
DrawTextureColor
Заголовок раздела «DrawTextureColor»ImGuiWindow:DrawTextureColor(texture: Texture, color: Color, rect: Rect? = nil)Рисует текстуру внутри окна с цветовой маской. Возвращает nil.
GetContentRenderSize
Заголовок раздела «GetContentRenderSize»ImGuiWindow:GetContentRenderSize(): Vector2Возвращает фактический размер области содержимого на экране в пикселях с учётом масштаба UI и масштаба плавающего окна.
SetVisibilityTypes
Заголовок раздела «SetVisibilityTypes»ImGuiWindow:SetVisibilityTypes(visibilityTypes: table): boolЗадаёт режимы, в которых окно доступно через редактор раскладки HUD. Передайте массив значений WindowVisibilityType. nil или пустая таблица оставляет окно только в общем фильтре всех режимов.
Возвращает true для действующего окна и false, если связанный элемент окна уже недоступен.
TextAnchor
Заголовок раздела «TextAnchor»Выравнивание текста относительно переданной области или позиции.
| Значение | Число | Положение |
|---|---|---|
TextAnchor.UpperLeft |
0 |
Сверху слева |
TextAnchor.UpperCenter |
1 |
Сверху по центру |
TextAnchor.UpperRight |
2 |
Сверху справа |
TextAnchor.MiddleLeft |
3 |
По центру слева |
TextAnchor.MiddleCenter |
4 |
По центру |
TextAnchor.MiddleRight |
5 |
По центру справа |
TextAnchor.LowerLeft |
6 |
Снизу слева |
TextAnchor.LowerCenter |
7 |
Снизу по центру |
TextAnchor.LowerRight |
8 |
Снизу справа |
WindowVisibilityType
Заголовок раздела «WindowVisibilityType»Режим видимости плавающего HUD-окна.
| Значение | Число | Режим |
|---|---|---|
WindowVisibilityType.Match |
0 |
Обычный матч |
WindowVisibilityType.Spectate |
1 |
Наблюдение за игроком |
WindowVisibilityType.Killcam |
2 |
Камера убийства |