Водное течение: быстрая река
Вода ускоряет персонажа в заданном направлении.
Пока персонаж касается зоны, его скорость по горизонтали направлена вдоль оси X. Это упрощённое игровое течение, а не физика плавания.
1. Подготовьте объект
Где разместить: Script внутри прозрачного Part с именем CurrentZone
Создайте длинный Part CurrentZone над водой или как условную реку.
Установите Anchored = true и CanCollide = false.
Добавьте внутрь обычный Script.
Зайдите в зону и наблюдайте движение.
2. Вставьте код
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, прыжок или освещение, могут влиять друг на друга.
Измените FLOW_SPEED с 35 на 60.
Поверните течение вдоль оси Z, заменив Vector3.new(1,0,0).
Сделайте подводную дорожку с двумя течениями в разных направлениях.
4. Проверьте себя
Какой тип значения используется для направления движения?
Зона должна иметь CanTouch=true и CanCollide=false. Для настоящего плавания дополнительно нужна Terrain Water.