Задать вопрос
@kolyart2022

Как изменить текст Label при касании Part в Roblox Studio?

Здравствуйте. Как изменять текст Label (который находится в StarterGui/MainGui/MainFrame) при касании игроком Part в Roblox Studio?
Написал скрипт, а он не работает.
function onTouched(Part)
	if Part.Parent:FindFirstChild('Humanoid') then
		local Gui = game:GetService('StarterGui'):WaitForChild('MainGui'):WaitForChild('MainFrame')
		local Label = Gui:WaitForChild('StagePlayer')
		
		Label.Text = 'Hi!'
		print('Test')
	end
end

script.Parent.Touched:Connect(onTouched)

При этом print выводит.
  • Вопрос задан
  • 1664 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@5465
Ваш код выглядит правильным и должен работать. Возможно, проблема заключается в том, что вы неправильно назвали ваш Part или Label в свойствах объектов.

Убедитесь, что имя Part и имя свойства Touched в объекте script.Parent совпадают. Также проверьте, что вы правильно назвали Label в свойстве Name в объекте MainFrame в вашем StarterGui.

Если все имена правильны, попробуйте добавить дополнительную проверку, чтобы убедиться, что Label находится внутри вашего MainFrame и существует перед изменением его текста:

function onTouched(Part)
if Part.Parent:FindFirstChild('Humanoid') then
local Gui = game:GetService('StarterGui'):WaitForChild('MainGui'):WaitForChild('MainFrame')
local Label = Gui:FindFirstChild('StagePlayer')
if Label then -- Добавленная проверка
Label.Text = 'Hi!'
print('Test')
end
end
end

script.Parent.Touched:Connect(onTouched)


Если это не помогает, попробуйте добавить отладочный вывод, чтобы узнать, где именно возникает проблема:

function onTouched(Part)
if Part.Parent:FindFirstChild('Humanoid') then
local Gui = game:GetService('StarterGui'):WaitForChild('MainGui'):WaitForChild('MainFrame')
local Label = Gui:FindFirstChild('StagePlayer')
if Label then
Label.Text = 'Hi!'
print('Test')
else
warn('Label not found')
print(Gui:GetFullName())
for _, child in ipairs(Gui:GetChildren()) do
print(child.Name)
end
end
end
end

script.Parent.Touched:Connect(onTouched)


Этот код выведет информацию о вашем MainFrame и его дочерних объектах, чтобы вы могли убедиться, что ваш Label находится внутри MainFrame и имеет правильное имя.
Ответ написан
Комментировать
@bombaYT228
А ты это делаешь в локальном скрипте? Гуишка рисуется только локально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы