Блог школы Роблоппа — Роблокс Студио, обучение, познавательные статьи и новости школы

Magnitude в Роблокс Студио: как определить расстояние между объектами

Туториалы Документация
В Роблокс Студио очень часто нужно понимать, насколько далеко один объект находится от другого: игрок от двери, персонаж от врага, игрок от ловушки или NPC.
Для этого используется свойство Magnitude.
В этой статье разберём:
  • что такое Magnitude простыми словами
  • как он работает
  • где применяется в играх
  • примеры использования
  • частые ошибки новичков

Что такое Magnitude простыми словами

Magnitude — это расстояние между двумя точками в 3D-пространстве.
Если представить мир Роблокс Студио как координатную сетку:
  • каждая точка имеет координаты X, Y, Z
  • Magnitude показывает, какая длина между двумя такими точками
📏 Проще всего представить Magnitude как линейку, натянутую между двумя объектами.

Где используется Magnitude в Роблокс Студио

Magnitude применяется почти в каждой игре:
  • открытие дверей, если игрок подошёл близко
  • активация ловушек
  • нанесение урона врагом
  • появление подсказок («Нажмите E»)
  • обнаружение игрока NPC
  • зоны взаимодействия и радиусы действия
Если в игре есть логика «близко / далеко» — там используется Magnitude.

Что нужно знать перед использованием

Каждый объект в Роблокс Студио имеет свойство: Position.
Position — это тип данных Vector3, который хранит координаты объекта в мире.

Как считается Magnitude

Чтобы получить расстояние между двумя объектами:
(part1.Position - part2.Position).Magnitude
📌 Важно:
  • сначала вычитаются позиции (Vector3)
  • затем вызывается .Magnitude
  • результат — обычное число

Пример 1. Расстояние между двумя объектами


local part1 = workspace.Part1
local part2 = workspace.Part2

local distance = (part1.Position - part2.Position).Magnitude
print(distance)
В консоль выведется расстояние между объектами в студиях (studs).

Пример 2. Расстояние между игроком и объектом

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")

local part = workspace.Part

local distance = (hrp.Position - part.Position).Magnitude
print(distance)
Обычно для игрока используют HumanoidRootPart, потому что он находится в центре персонажа.

Пример 3. Проверка: игрок рядом или далеко

local maxDistance = 10

if distance <= maxDistance then
print("Игрок рядом")
else
print("Игрок далеко")
end
Так создаётся логика взаимодействия с объектами.

Пример 4. Применение в игре (ловушка)

if distance <= 5 then
humanoid:TakeDamage(10)
end
Если игрок подошёл ближе чем на 5 — он получает урон.

Визуальное объяснение для начинающих

Представь:
  • игрок стоит в мире
  • рядом стоит сундук
  • между ними есть невидимая линия
Чем короче линия, тем меньше Magnitude
Чем длиннее линия, тем больше Magnitude

Частые ошибки новичков

❌ Использовать объекты напрямую:
part1 - part2
✅ Нужно использовать позиции:
part1.Position - part2.Position
❌ Сравнивать Vector3
✅ Сравнивать число, полученное через .Magnitude

Итог

  • Magnitude — это расстояние
  • работает с Vector3
  • возвращает число
  • используется почти в каждой игре

🚀 Хочешь научиться писать свои скрипты с нуля?

Запишись на обучение по Роблокс Студио на сайте roblo.ru
Ты узнаешь, как создавать игры, интерфейсы и программировать события — шаг за шагом!
Made on
Tilda