Конвейер: вперёд, назад и остановка
Три кнопки управляют движущейся лентой.
Лента перемещает стоящие на ней объекты и персонажей, направление меняется кнопками.
1. Подготовьте объект
Где разместить: Обычный Script в ServerScriptService
Создайте в Workspace длинный Anchored Part с именем Conveyor.
Рядом разместите три Anchored Part: BeltForward, BeltBackward, BeltStop.
Добавьте обычный Script в ServerScriptService.
2. Вставьте код
local belt = workspace:WaitForChild("Conveyor")
local buttons = {BeltForward = 22, BeltBackward = -22, BeltStop = 0}
local busy = false
local function setSpeed(speed)
-- Скорость вдоль локальной оси X ленты.
belt.AssemblyLinearVelocity = belt.CFrame.RightVector * speed
end
for name, speed in pairs(buttons) do
workspace:WaitForChild(name).Touched:Connect(function(hit)
if busy then return end
local character = hit:FindFirstAncestorOfClass("Model")
if not character or not character:FindFirstChildOfClass("Humanoid") then return end
busy = true
setSpeed(speed)
task.delay(0.5, function() busy = false end)
end)
end
setSpeed(22)
3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Измените скорость ленты с 22 на 10.
Добавьте две параллельные ленты.
Придумайте завод, где нужно доставить коробки по конвейеру.
4. Проверьте себя
Что изменится при переключении конвейера на обратный ход?
Conveyor должен быть Anchored и иметь возможность физического контакта с персонажем. Скорость на ленте зависит от её направления.