← Все практические скрипты
Мир и свет · Уверенный · 20 мин

Водное течение: быстрая река

Вода ускоряет персонажа в заданном направлении.

Иллюстрация: Водное течение: быстрая река
🎯 Что получится

Пока персонаж касается зоны, его скорость по горизонтали направлена вдоль оси X. Это упрощённое игровое течение, а не физика плавания.

1. Подготовьте объект

Где разместить: Script внутри прозрачного Part с именем CurrentZone

Создайте длинный Part CurrentZone над водой или как условную реку.
Установите Anchored = true и CanCollide = false.
Добавьте внутрь обычный Script.
Зайдите в зону и наблюдайте движение.

2. Вставьте код

Script
local zone = script.Parent
local RunService = game:GetService("RunService")
local FLOW_SPEED = 35
local direction = Vector3.new(1, 0, 0)

RunService.Heartbeat:Connect(function()
    local seen = {}
    for _, part in ipairs(workspace:GetPartsInPart(zone)) do
        local character = part:FindFirstAncestorOfClass("Model")
        local humanoid = character and character:FindFirstChildOfClass("Humanoid")
        local root = character and character:FindFirstChild("HumanoidRootPart")
        if humanoid and humanoid.Health > 0 and root and not seen[character] then
            seen[character] = true
            local old = root.AssemblyLinearVelocity
            root.AssemblyLinearVelocity = Vector3.new(direction.X * FLOW_SPEED, old.Y, direction.Z * FLOW_SPEED)
        end
    end
end)

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените FLOW_SPEED с 35 на 60.

2. Улучшите

Поверните течение вдоль оси Z, заменив Vector3.new(1,0,0).

3. Придумайте своё

Сделайте подводную дорожку с двумя течениями в разных направлениях.

4. Проверьте себя

Какой тип значения используется для направления движения?

🛠 Если не работает

Зона должна иметь CanTouch=true и CanCollide=false. Для настоящего плавания дополнительно нужна Terrain Water.