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

Как использовать GetChildren() в Роблокс Студио

2025-11-07 14:34 Документация
Когда вы создаёте игру в Роблокс Студио, часто нужно обратиться сразу ко всем объектам внутри модели — например, чтобы изменить их цвет, добавить эффект или удалить ненужные части.
Для этого в языке Lua есть удобный метод:
:GetChildren()
Разберём, что он делает и как его использовать на практике 👇

🔹 Что делает GetChildren()

Метод GetChildren() возвращает список (таблицу) всех объектов, находящихся внутри выбранного объекта.
Например:
local model = workspace.MyModel
local parts = model:GetChildren()
Теперь переменная parts содержит таблицу со всеми элементами, которые находятся внутри MyModel: блоки, эффекты, скрипты, свет и т. д.
💡 Даже если внутри есть вложенные модели, GetChildren() вернёт только первый уровень объектов — не глубже.

🔹 Как обойти все объекты

Обычно GetChildren() используют вместе с циклом for.
Пример: сделать все детали модели красными 👇
local model = workspace.MyModel
for _, part in pairs(model:GetChildren()) do
if part:IsA("BasePart") then
part.BrickColor = BrickColor.new("Bright red")
end
end
🧠 Объяснение:
  • for _, part in pairs(...) — цикл, который проходит по всем объектам из списка.
  • IsA("BasePart") проверяет, является ли объект деталью.
  • Если да, меняем цвет.

🔹 Другие примеры

💡 Выключить все огни

for _, light in pairs(workspace.Room:GetChildren()) do
if light:IsA("PointLight") then
light.Enabled = false
end
end

💥 Удалить все эффекты внутри модели

for _, child in pairs(workspace.ExplosionZone:GetChildren()) do
if child:IsA("ParticleEmitter") or child:IsA("Smoke") then
child:Destroy()
end
end

🎵 Найти и включить все звуки

for _, sound in pairs(script.Parent:GetChildren()) do
if sound:IsA("Sound") then
sound:Play()
end
end

🔹 Важно знать

  • GetChildren() возвращает только прямых потомков объекта.
  • Если нужно найти всё, включая вложенные элементы, используй:
object:GetDescendants()
  • Порядок элементов в таблице, которую возвращает GetChildren(), не гарантируется.
  • Если важен порядок, лучше сортировать вручную.

💬 Практическое задание

Создай модель, добавь в неё несколько деталей разных цветов.
Напиши скрипт, который:
  1. Меняет их цвет на зелёный,
  2. Включает все огни (PointLight),
  3. И воспроизводит звук при старте.

📦 Полезные ссылки

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

🎮 Присоединяйся к обучению Роблокс Студио на сайте
👉 roblo.ru
Там ты научишься создавать игры, GUI, диалоги и эффекты — шаг за шагом!