Блог школы Роблоппа — Роблокс Студио, обучение, познавательные статьи и новости школы

10 cкриптов на касание (Touch) в Роблокс Студио

Туториалы
Событие 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)
Инструкция:

  • Создай Part (например, лаву или шипы).
  • Вставь в него Script и добавь код.
  • Когда игрок коснётся блока, он получит урон.

2. 💥 Удаление объекта при касании

script.Parent.Touched:Connect(function(hit)
hit:Destroy()
end)
Инструкция:

  • Создай Part (например, ловушку).
  • Вставь в него Script и добавь код.
  • Любой объект, коснувшийся этого блока, будет удалён.

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)
Инструкция:

  • Создай Part (например, липкую грязь).
  • Вставь в него Script.
  • При касании игрок будет двигаться медленно.

6. 🚪 Открытие двери

local door = workspace:WaitForChild("Door")

script.Parent.Touched:Connect(function(hit)
door.Transparency = 1
door.CanCollide = false
end)
Инструкция:

  • Создай Part (кнопку или плиту).
  • Вставь в неё Script.
  • В 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)
Инструкция:

  • Создай Part (например, музыкальную плиту).
  • Вставь в него Sound и добавь звук.
  • Вставь в этот же Part Script.

9. 🌀 Эффект вспышки

script.Parent.Touched:Connect(function(hit)
local flash = Instance.new("PointLight")
flash.Color = Color3.new(1, 1, 0)
flash.Brightness = 5
flash.Range = 10
flash.Parent = script.Parent
wait(0.5)
flash:Destroy()
end)
Инструкция:

  • Создай Part (например, магический блок).
  • Вставь в него Script.
  • При касании создаётся вспышка света.

10. 🧊 Изменение цвета при касании

script.Parent.Touched:Connect(function()
script.Parent.BrickColor = BrickColor.Random()
end)
Инструкция:

  • Создай Part (например, плитку).
  • Вставь в него Script.
  • При касании цвет блока будет меняться.

📦 Полезные советы

  • Всегда проверяй, кто именно касается объекта (например, персонаж или часть мира).
  • Не забывай про дебаунс, если не хочешь, чтобы событие срабатывало слишком часто.
local debounce = false

script.Parent.Touched:Connect(function(hit)
if debounce then return end
debounce = true

print("Коснулся!")
wait(1)
debounce = false
end)

🧠 Что дальше?

Эти простые скрипты отлично подходят для обучения, а также для прототипирования своих игр. Их можно использовать:
  • в обучающих картах,
  • в играх с ловушками,
  • в системах прогресса и наград.

📍 Заключение

Событие Touched — отличный способ добавить интерактивности в игру без сложных интерфейсов. Попробуй каждый из этих скриптов и адаптируй под свою идею!

🔗 Полезные ссылки:

✉️ Хочешь научиться создавать игры в Роблокс?
Запишись на наши занятия по Роблокс Студио — научим с нуля создавать крутые проекты!
Made on
Tilda