Гравитация: лёгкий и обычный режим
Две площадки меняют ощущение тяжести только у коснувшегося игрока.
В зоне слабой гравитации персонаж дольше падает, другая зона возвращает обычное движение.
1. Подготовьте объект
Где разместить: Script в ServerScriptService
Создайте LowGravityPad и NormalGravityPad в Workspace.
Включите Anchored.
Вставьте Script в ServerScriptService.
Проверяйте на R15 или R6 персонаже.
2. Вставьте код
local low = workspace:WaitForChild("LowGravityPad")
local normal = workspace:WaitForChild("NormalGravityPad")
local factor = 0.35
local busy = {}
local function setGravity(hit, useLow)
local char = hit:FindFirstAncestorOfClass("Model")
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
if not hum or hum.Health <= 0 or not root or busy[char] then return end
busy[char] = true
local attachment = root:FindFirstChild("IgroGravityAttachment")
local force = root:FindFirstChild("IgroGravityForce")
if useLow then
if not attachment then
attachment = Instance.new("Attachment")
attachment.Name = "IgroGravityAttachment"
attachment.Parent = root
end
if not force then
force = Instance.new("VectorForce")
force.Name = "IgroGravityForce"
force.Attachment0 = attachment
force.RelativeTo = Enum.ActuatorRelativeTo.World
force.Parent = root
end
force.Force = Vector3.new(0, root.AssemblyMass * workspace.Gravity * (1-factor), 0)
else
if force then force:Destroy() end
if attachment then attachment:Destroy() end
end
task.delay(0.8, function() busy[char] = nil end)
end
low.Touched:Connect(function(hit) setGravity(hit, true) end)
normal.Touched:Connect(function(hit) setGravity(hit, false) end)
3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Поставьте factor = 0.15 и сравните падение.
Добавьте две зоны с разной силой гравитации.
Сделайте космическую карту с низкой гравитацией.
4. Проверьте себя
Как в этой практике создаётся слабая гравитация только для одного героя?
VectorForce рассчитывает силу по массе персонажа. Если другой скрипт меняет массу или Gravity, расчёт может потребовать обновления.