Вращающаяся преграда
Создайте вращающийся луч для полосы препятствий.
Луч постоянно вращается вокруг своей вертикальной оси; при касании снимает здоровье.
1. Подготовьте объект
Где разместить: Script внутри Part с именем Spinner
Создайте длинный узкий Part Spinner.
Установите Anchored = true, CanCollide = false.
Поместите его в центр платформы горизонтально.
Добавьте Script внутрь Spinner.
2. Вставьте код
local spinner = script.Parent
local RunService = game:GetService("RunService")
local DEGREES_PER_SECOND = 60
local hitCooldown = {}
RunService.Heartbeat:Connect(function(dt)
spinner.CFrame = spinner.CFrame * CFrame.Angles(0, math.rad(DEGREES_PER_SECOND) * dt, 0)
end)
spinner.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 or hitCooldown[humanoid] then return end
hitCooldown[humanoid] = true
humanoid:TakeDamage(20)
task.delay(1, function() hitCooldown[humanoid] = nil end)
end)3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Измените DEGREES_PER_SECOND на 90.
Сделайте второй Spinner в другом месте трассы.
Постройте арену с несколькими вращающимися препятствиями.
4. Проверьте себя
Что в игре меняется у вращающейся преграды?
Убедитесь, что Spinner заякорен и не является частью модели, приваренной к другим деталям. Для регистрации касаний оставьте CanTouch = true.