Событие Touched — один из самых простых и мощных способов взаимодействия в Roblox Studio. С его помощью можно создавать ловушки, бонусы, двери и многое другое. В этой статье — 10 полезных скриптов, которые срабатывают при касании объекта игроком.
📜 Как работает Touched
Когда любой объект (например, персонаж игрока) касается другого объекта (например, блока), у последнего срабатывает событие Touched.
part.Touched:Connect(function(hit) print("Объект был коснутся:", hit.Name) end)
Советы:
Работает только у объектов с CanCollide = true и Anchored = true/false.
hit — это объект, который коснулся.
✅ Скрипты на касание
1. 🔥 Урон при касании
script.Parent.Touched:Connect(function(hit) local human = hit.Parent:FindFirstChild("Humanoid") if human then human:TakeDamage(20) end end)
Любой объект, коснувшийся этого блока, будет удалён.
3. 💨 Телепортация игрока
local destination = workspace:WaitForChild("TeleportPoint")
script.Parent.Touched:Connect(function(hit) local character = hit.Parent if character:FindFirstChild("HumanoidRootPart") then character.HumanoidRootPart.CFrame = destination.CFrame end end)
Инструкция:
Создай Part (телепорт-портал).
Вставь в него Script.
В Workspace добавь ещё один Part и назови его TeleportPoint — это точка назначения.
4. 🪙 Добавление очков
Перед тем, как переписать этот скрипт, создай Value для посчета очков. script.Parent.Touched:Connect(function(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) if player then player.leaderstats.Points.Value += 1 end end)
Инструкция:
Создай Part (например, монетку или бонус).
Вставь в него Script.
В StarterPlayerScripts нужно добавить скрипт, который создаёт leaderstats с очками (IntValue Points).
5. 🧍 Замедление игрока
script.Parent.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChild("Humanoid") if humanoid then humanoid.WalkSpeed = 5 end end)
В Workspace создай Part и назови его Door. При касании кнопки дверь исчезнет.
7. 🚩 Сохранение чекпоинта
script.Parent.Touched:Connect(function(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) if player then player.RespawnLocation = script.Parent end end)
Инструкция:
Создай Part (чекпоинт, например, флаг).
Вставь в него Script.
При касании игрок будет возрождаться на этом месте.
8. 🎵 Воспроизведение звука
local sound = script.Parent:FindFirstChild("Sound")
script.Parent.Touched:Connect(function(hit) if sound then sound:Play() end end)