Открыть сервисСервис

Курсор в Roblox Studio

Курсор в Roblox Studio — это визуальный инструмент навигации и манипуляции объектами в трёхмерном пространстве, представленный стрелками (гизмо) перемещения, вращения и масштабирования, а также маркером позиции. Термин «курсор» в контексте Roblox может обозначать два разных объекта: системный курсор мыши, отображаемый в окне игры, и инструмент-курсор (Cursor) — графический объект типа SurfaceGui или ImageLabel, используемый для создания пользовательского указателя в интерфейсе. В редакторе под курсором обычно понимают манипулятор Transform (Move / Scale / Rotate), а в игровом процессе — кастомный курсор, заменяющий стандартный указатель Windows.

Манипулятор объектов в Roblox Studio

Инструменты трансформации

Roblox Studio предоставляет три основных инструмента трансформации, вызываемых горячими клавишами:

ИнструментКлавишаНазначение
MoveCtrl + 2Перемещение объекта по осям X, Y, Z
ScaleCtrl + 3Масштабирование объекта
RotateCtrl + 4Вращение объекта вокруг осей

После выбора объекта в окне 3D-вьюпорта появляются цветные стрелки: красная — ось X, зелёная — ось Y, синяя — ось Z. Перетаскивание стрелки мышью перемещает Part вдоль соответствующей оси. Для масштабирования вместо стрелок отображаются квадратные маркеры, для вращения — кольца.

Настройка сетки и привязки

Точность позиционирования обеспечивается системой Snap (привязки). В меню Model → Snap Settings задаётся шаг сетки (по умолчанию 1 студ-юнит для перемещения и 16 градусов для вращения). Удерживание клавиши Shift при перетаскивании временно отключает привязку, позволяя размещать объекты с плавным позиционированием. Включение/отключение сетки выполняется через кнопку Grid на вкладке Model.

Transform по координатам

Для точного размещения объекта используется панель Properties → Position (для Part) или Pivot Offset. Задание числовых значений X, Y, Z позволяет обойтись без мышиного курсора вообще. Аналогично работает вкладка Transform в окне свойств, где указываются точные углы поворота и размеры.

Кастомный курсор в игре

Понятие и назначение

Внутриигровой курсор — это пользовательский указатель, который заменяет стандартный курсор операционной системы в окне Roblox-игры. Он создаётся на базе объекта PlayerGui и отображается поверх интерфейса. Кастомные курсоры используются для:

  • стилизации интерфейса под тематику игры;
  • создания атмосферных указателей (например, перекрестие в шутерах);
  • реализации нестандартных механик наведения.

Способы создания

Способ 1. Встроенный инструмент Cursor. В Explorer создаётся объект типа SurfaceGui или Frame внутри ScreenGui, после чего через скрипт задаётся свойство MouseIconEnabled. Более простой путь — использовать свойство PlayerGui.MouseIcon или Mouse.Icon:

``lua local player = game.Players.LocalPlayer local mouse = player:GetMouse() mouse.Icon = "rbxassetid://<ID изображения>" ``

Загружается изображение курсора через Asset Manager → Images, получается уникальный ID вида rbxassetid://1234567890, который подставляется в скрипт.

Способ 2. ScreenGui + ImageLabel. Создаётся ScreenGui с включённым свойством IgnoreGuiInset, внутри — ImageLabel с текстурой курсора. Скрипт-LocalScript обновляет позицию ImageLabel по координатам мыши:

``lua local mouse = game:GetService("UserInputService") local gui = script.Parent mouse.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then gui.ImageLabel.Position = UDim2.new(0, input.Position.X, 0, input.Position.Y) end end) ``

При этом стандартный курсор скрывается через UserInputService.MouseIconEnabled = false.

Пользовательский курсор через Mouse properties

Объект Mouse (получаемый через Player:GetMouse()) предоставляет свойства:

  • Icon — путь к изображению курсора;
  • Hit — позиция в 3D-пространстве под курсором;
  • Target — объект (BasePart), на который наведён курсор;
  • KeyDown — событие нажатия клавиши при наведении.

Свойство Target часто используется для реализации подсветки объектов при наведении — классическая механика интерактивных игр.

Использование курсора в UI-элементах

При разработке пользовательского интерфейса свойства курсора интегрируются с элементами управления. Кнопки (TextButton, ImageButton) реагируют на события MouseEnter, MouseLeave, MouseButton1Click. Для смены вида курсора при наведении на интерактивный элемент применяется:

``lua button.MouseEnter:Connect(function() game:GetService("UserInputService").MouseIcon = "rbxassetid://..." end) ``

Также существует свойство CursorImage у некоторых GUI-элементов, позволяющее задать локальную замену курсора без глобального изменения.

Особенности и ограничения

  • Кастомный курсор, заданный через Mouse.Icon, отображается только при захвате мыши и не влияет на мобильные устройства — на сенсорных экранах курсор отсутствует в принципе.
  • Разрешение изображения курсора рекомендуется кратно 32×32 или 64×64 пикселя для корректного отображения.
  • При публикации игры изображение курсора должно пройти модерацию Roblox (требования к контенту).
  • Свойство MouseIconEnabled сбрасывается при каждом входе игрока, поэтому установка кастомного курсора выполняется в LocalScript, запускаемом через StarterPlayerScripts или StarterGui.

Источники:

  • Документация Roblox Developer Hub: Mouse, UserInputService, StarterGui
  • Roblox Creator Documentation: UI Design и Input Handling
  • Сообщество DevForum Roblox: обсуждения кастомных курсоров и гизмо-инструментов
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru