• Добро пожаловать! Если у вас не проходит регистрация - попробуйте отключить программы, которые могут изменять интернет-подключение.

[SOLVED] Текст меняется, при этом не меняется

Статус
В этой теме нельзя размещать новые ответы.

hpasus8

Пользователь
Регистрация
Фев 15, 2025
Сообщения
11

ПРОБЛЕМА РЕШЕНА​

Всех приветствую!

В моей игре есть скрипт, который меняет название текста в textButton.
Как видите, в картинке ниже Text в Properties поменялся, а в игре как остался Now playing:, так и остаётся Now playing:.
1739632966133.png


Скрипт:
LUA:
local SoundService = game:GetService("SoundService")
local currentMusic = SoundService:FindFirstChild("BackgroundMusic")
local nowPlays = script.Parent:WaitForChild('nowPlaysText') -- тот самый textButton

local function updateNowPlaying()
    local currentMusic = SoundService:FindFirstChildOfClass("Sound")
    if currentMusic and currentMusic.IsPlaying then
        nowPlays.Text = "Now Playing: " .. currentMusic.Name
    end
end

SoundService.ChildAdded:Connect(updateNowPlaying)
SoundService.ChildRemoved:Connect(updateNowPlaying)
updateNowPlaying()

Заранее спасибо за помощь!
 
Последнее редактирование:
Решение
мб так:


LUA:
local SoundService = game:GetService("SoundService")
local nowPlays = script.Parent:WaitForChild('nowPlaysText')

local function updateNowPlaying()
    local currentMusic = SoundService:FindFirstChildOfClass("Sound")
    if currentMusic and currentMusic.IsPlaying then
        nowPlays.Text = "Now Playing: " .. currentMusic.Name
    else
        nowPlays.Text = "No music playing"
    end
end

SoundService.ChildAdded:Connect(function(child)
    if child:IsA("Sound") then
        child.Ended:Connect(updateNowPlaying)
        child.Stopped:Connect(updateNowPlaying)
        updateNowPlaying()
    end
end)

SoundService.ChildRemoved:Connect(updateNowPlaying)

updateNowPlaying()
ты в explorer где смотришь GUI ? В стартер гуи, или PlayerGui?
 
У тебя наверно и скрипт меняет StarterGUI, попробуй менять именно в PlayerGUI
 
У тебя наверно и скрипт меняет StarterGUI, попробуй менять именно в PlayerGUI
Окей. Тогда смотри: в explorer у меня нету PlayerGUI. Надо создать отдельную папку в workspace с названием PlayerGUI и перемести туда скрипт?
 
Окей. Тогда смотри: в explorer у меня нету PlayerGUI. Надо создать отдельную папку в workspace с названием PlayerGUI и перемести туда скрипт?
У тебя PlayerGUI находится в Players, когда ты заходишь в игру.

В PlayerGUI находится то, что дается в StarterGUI, но он не обновляет в течении игры. У тебя это весь скрипт?
 
Я могу сделать, но кинь файлик гуишки (ПКМ- Save to File)
 
У тебя PlayerGUI находится в Players, когда ты заходишь в игру.

В PlayerGUI находится то, что дается в StarterGUI, но он не обновляет в течении игры. У тебя это весь скрипт?
Да.
Файл с GUI прикрепляю
 

Вложения

мб так:


LUA:
local SoundService = game:GetService("SoundService")
local nowPlays = script.Parent:WaitForChild('nowPlaysText')

local function updateNowPlaying()
    local currentMusic = SoundService:FindFirstChildOfClass("Sound")
    if currentMusic and currentMusic.IsPlaying then
        nowPlays.Text = "Now Playing: " .. currentMusic.Name
    else
        nowPlays.Text = "No music playing"
    end
end

SoundService.ChildAdded:Connect(function(child)
    if child:IsA("Sound") then
        child.Ended:Connect(updateNowPlaying)
        child.Stopped:Connect(updateNowPlaying)
        updateNowPlaying()
    end
end)

SoundService.ChildRemoved:Connect(updateNowPlaying)

updateNowPlaying()
 
Решение
Текст поменялся, но на No music playing. Убрал and currentMusic.IsPlaying, и текст начал работать.
Однако есть 2 бага:
1) Когда музыка меняется, текст не меняется. Мб, эти строки помогут:
local sound = Instance.new('Sound') -- в начале скрипта
sound.Changed:Connect(updateNowPlaying) -- в конце скрипта
2) Иногда текст не совпадает с названием песни
Т.е., в тексте написана 1 песня, а по факту играет другая песня
Не знаю, как исправить 2-ой баг
UPD: 2 строки в 1-ом баге не помогли решить 1-ый баг
 
Ну скрипт чекает, у какой песни включен IsPlaying, и показывает её. Как у тебя выглядит SoundService?
 
Я бы сделал по другому, чтобы песни хранились в одном месте, когда вкючалсь музыка - она бы переносилась в SoundService, иначе переписывать скрипт придется, а я хз как
 
Я бы сделал по другому, чтобы песни хранились в одном месте, когда вкючалсь музыка - она бы переносилась в SoundService, иначе переписывать скрипт придется, а я хз как
Т.е., как я понимаю, все песни хранятся в отдельной папке (не SoundService), затем, когда включается песня, она переносится в SoundService, затем, когда песня заканчивается, она переносится обратно в той папке и так по-новому?
 
Т.е., как я понимаю, все песни хранятся в отдельной папке (не SoundService), затем, когда включается песня, она переносится в SoundService, затем, когда песня заканчивается, она переносится обратно в той папке и так по-новому?
Ну типа такого, я просто хз как иначе
 
Написал, теперь всё работает. iceb3rg, спасибо за помощь!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху