Перейти к содержимому

WorldVisuals

Только client WorldVisuals недоступен в server.lua Reflex-модуля.

CreateLineRenderer() и CreateSurfaceOverlay() создают реальные локальные render-объекты в клиентской сцене и возвращают управляющие обёртки. Setter-ы обновляют параметры уже созданного renderer-а; это не команды, которые нужно повторять каждый кадр, если значение не меняется.

Сервер о таких объектах не знает, физика и игровой мир их не учитывают. RemoveObject() удаляет только визуальный объект и не воздействует на сущность или поверхность, возле которой он был нарисован.

  • LineRenderer рисует линию непосредственно в трёхмерном мире по заданным мировым координатам. Это не HUD-элемент.
  • SurfaceOverlay проецирует цветную область на геометрию мира внутри заданного объёма. Он не создаёт плоское окно поверх экрана.
  • Объекты остаются в мире, пока модуль не вызовет WorldVisuals:RemoveObject() или не будет выгружен.
  • API рисует объекты напрямую и не требует встроенного HUD-модуля. Он также не привязывает их к камере или сущности автоматически — для движущегося маркера обновляйте позицию самостоятельно.
local line = WorldVisuals:CreateLineRenderer()
if line ~= nil then
line:SetPositions({
Vector3.new(0, 1, 0),
Vector3.new(2, 1, 2),
Vector3.new(4, 1, 0),
})
line:SetColor(Color.new(1, 0.1, 0.8, 1))
line:SetWidth(0.08)
Scheduler:Schedule(5, function()
WorldVisuals:RemoveObject(line)
end)
end

Глобальный API создания мировых визуальных объектов.

WorldVisuals:CreateLineRenderer(): LineRenderer

Создаёт линию и возвращает её объект. Может вернуть nil при достижении лимита объектов модуля.

WorldVisuals:CreateSurfaceOverlay(): SurfaceOverlay

Создаёт область, проецируемую на поверхности мира. Может вернуть nil при достижении лимита.

WorldVisuals:RemoveObject(object)

Удаляет ранее созданную линию или область. Вызов возвращает nil.

Ломаная линия из мировых точек.

Свойство Тип Доступ Описание
PositionCount int get/set Количество точек линии. Максимум — 2048.
LineRenderer:SetPositionCount(count: int)

Задаёт количество точек линии.

LineRenderer:SetPosition(index: int, position: Vector3)

Изменяет одну точку. В отличие от API-массивов, индекс здесь начинается с 0.

LineRenderer:SetPositions(points: LuaTable)

Заменяет все точки значениями последовательной Lua-таблицы. Поддерживается до 2048 точек.

Все setter-методы ниже возвращают nil.

Метод Аргументы Описание
SetColor color: Color Устанавливает цвет линии.
SetWidth width: number Задаёт постоянную толщину.
SetDistanceWidth nearWidth, farWidth, nearDistance, farDistance: number Линейно изменяет толщину между ближней и дальней дистанциями.
SetOccludedVisibility brightness, transparency: number Настраивает видимость перекрытых геометрией участков. Значения ограничиваются диапазоном 0..1.
SetPatternEnabled enabled: bool Включает или отключает текстурный паттерн.
SetPatternRepeat repeatCount: number Задаёт число повторений паттерна вдоль линии.
SetPatternTexture texture: Texture Устанавливает Texture паттерна.
SetProgress progress: number Задаёт пройденную часть линии для материалов с _Progress.

Область, которая проецируется на видимые поверхности мира.

Все методы возвращают nil.

Метод Аргументы Описание
SetPosition position: Vector3 Задаёт центр области в мире.
SetSize size: Vector3 Задаёт размер проецируемого объёма.
SetColor color: Color Задаёт цвет и прозрачность.
SetFillBase fillBase: number Задаёт базовую плотность заливки.
SetOcclusionEnabled enabled: bool Включает маску перекрытий геометрией.
SetVisible visible: bool Показывает или скрывает область.

Связанные типы: Vector3, Color и Texture.