LUA

Что такое Luaв Roblox: основы языка и примеры

Разбираем, что такое Lua и Luau в Roblox, какие конструкции нужны новичку и как язык используется в Roblox Studio.

6 мин чтения
Фрагмент функции на Lua и крупная надпись Lua
В этой статье

Roblox использует Luau — язык на основе Lua, адаптированный для платформы. Он сохраняет простой синтаксис Lua и добавляет возможности, полезные для крупных игровых проектов: постепенную типизацию, улучшенный анализ кода и оптимизации среды выполнения.

Зачем Lua и Luau нужны в Roblox

Объекты в Roblox Studio задают структуру мира, а скрипты описывают его поведение. С их помощью можно открыть дверь, обновить интерфейс, рассчитать награду, запустить раунд или сохранить прогресс игрока.

Язык удобен для первого знакомства с программированием: в нём мало обязательного синтаксиса, а результат небольшого изменения легко увидеть прямо в сцене.

Основные типы данных Lua в Roblox

В повседневном коде чаще всего встречаются строки, числа, логические значения, таблицы и объекты Roblox.

Lua
local playerName = "Cherry"
local score = 25
local isReady = true
local rewards = { 10, 25, 50 }

nil означает отсутствие значения. Это важно учитывать при поиске объекта или чтении необязательных данных.

Таблицы в Lua

Таблица может работать как список или как набор именованных полей.

Lua
local playerSettings = {
    musicEnabled = true,
    volume = 0.65,
    theme = "dark",
}

print(playerSettings.theme)

Таблицы подходят для небольших конфигураций. Для сложных систем полезно дополнить их типами Luau, чтобы редактор раньше находил несовпадения.

Функции Lua для Roblox

Функция объединяет несколько действий и может принимать аргументы или возвращать результат.

Lua
local function calculateReward(baseReward, multiplier)
    return baseReward * multiplier
end

local reward = calculateReward(20, 1.5)

Если функция называется как действие и остаётся короткой, код легче читать без дополнительных комментариев.

Условия и циклы в Lua

Условие выбирает ветку поведения, а цикл повторяет действие для набора значений.

Lua
local scores = { 12, 28, 43 }

for _, value in scores do
    if value >= 25 then
        print("Высокий результат:", value)
    end
end

Избегайте бесконечных циклов без паузы. Они могут занять поток выполнения и ухудшить работу игры.

Как Lua работает с объектами Roblox

Глобальный объект game даёт доступ к сервисам и дереву экземпляров. Метод GetService — стандартный способ получить сервис платформы.

Lua
local Lighting = game:GetService("Lighting")
Lighting.ClockTime = 18.5

Синтаксис языка остаётся компактным, но поведение определяется API Roblox. Поэтому полезно изучать Lua вместе со свойствами, методами и событиями объектов Studio.

Что изучать после основ Lua в Roblox

Освойте переменные, функции, условия и таблицы, затем переходите к событиям и разделению серверного и клиентского кода. Следующий практический шаг — разобраться, где размещать разные типы скриптов.

Наверх