Музыка в roblox studio
Как сделать, чтобы при прикосновении к парту менялась фоновая музыка? То есть, например в игре есть несколько зон, и нужно чтобы при переходе в другую зону у неё была своя фоновая музыка(типо для дополнения её атмосферы). И чтобы у каждого игрока это было индивидуально(то есть чтобы фоновые музыки у каждого игрока зависели от той зоны, в которой они находятся). Помогите пожалуйста
попробуй создать RemoteEvent в ReplicatedStorage, скрипт в парте, который нужно коснуться и локал скрипт в StarterCharacterScripts (или StarterPlayerScripts, если не работает)
Эти скрипты буду обозначать, как Script и LocalScript
В парте поставь IntValue и там напиши айди музыки
В workspace создай Sound, с ним ничего не делай
В Script напиши
Script.Parent.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
game.ReplicatedStorage.RemoteEvent:FireClient( hit.Parent.Name , script.Parent.Value.Value) (если не работает, тут попробуй поставить вместо двоеточия точку)
end)
В LocalScript напиши
game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function(Sound_Id)
workspace.Sound.SoundId = Sound_Id
if not sound.IsPlaying then
sound:Play()
end
end)
нуу вроде должно сработать, был бы у меня сейчас комп, работало бы точно, а так только так :(
Для реализации смены фоновой музыки в **Roblox Studio** в зависимости от зоны, в которой находится игрок, следуйте этому плану:
### 1. **Создайте Sound объект**
Вставьте объект **Sound** в **StarterGui** (чтобы музыка играла локально для каждого игрока).
1. Перейдите в **StarterGui** в Explorer.
2. Нажмите правой кнопкой -> **Insert Object** -> **Sound**.
3. В **Properties** укажите `SoundId` (ссылку на музыку из каталога Roblox).
### 2. **Создайте зоны с частями (Parts)**
Создайте невидимые **Part**'ы в местах, где должна меняться музыка:
1. Вставьте **Part** в вашу зону.
2. В **Properties** поставьте `CanCollide = false`, `Transparency = 1`, `Anchored = true`.
3. Добавьте в этот **Part** объект **Script**.
### 3. **Добавьте код в скрипт зоны**
Используем **LocalScript** в **StarterPlayerScripts**, чтобы музыка менялась только у игрока, который пересёк зону.
#### **Код в LocalScript (StarterPlayerScripts)**
```lua
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humRoot = character:WaitForChild("HumanoidRootPart")
local zones = {
["Zone1"] = "rbxassetid://SOUND_ID_1",
["Zone2"] = "rbxassetid://SOUND_ID_2",
["Zone3"] = "rbxassetid://SOUND_ID_3"
}
local sound = Instance.new ("Sound")
sound.Parent = game:GetService("StarterGui")
sound.Looped = true
sound.Volume = 1
sound:Play()
local function onTouched(zone)
local musicId = zones[ zone.Name ]
if musicId then
sound.SoundId = musicId
sound:Play()
end
end
for zoneName, _ in pairs(zones) do
local zonePart = workspace:FindFirstChild(zoneName)
if zonePart then
zonePart.Touched:Connect(function(hit)
if hit.Parent == character then
onTouched(zonePart)
end
end)
end
end
```
### 4. **Настройте зоны**
- Переименуйте **Part**’ы в **Explorer** в `"Zone1"`, `"Zone2"` и т. д.
- В коде замените `SOUND_ID_1`, `SOUND_ID_2` на реальные ID музыки.
Теперь у каждого игрока музыка будет меняться индивидуально при переходе в разные зоны! 🚀