Как говорит М. Зигенхорн, ваша проблема в том, что вы имеете в виду StarterGui, а не PlayerGui.
StarterGui - это контейнер, содержащий графические интерфейсы по умолчанию, которые должны быть выданы игроку после появления, в то время как PlayerGui (game.Players.Ravenshield.PlayerGui, например) - это то, где GUI хранятся для каждого игрока. Доступ к PlayerGui возможен только через LocalScript.
Самый простой способ получить доступ к вашему PlayerGui - это просто разместить LocalScript внутри ScreenGui, который вы используете. В противном случае, вы можете также получить доступ к его легко делать game.Players.LocalPlayer.PlayerGui
Если бы я кладу LocalScript непосредственно в ScreenGui мы используем, это может выглядеть следующим образом:
local TextBox = script.Parent.TextBox
local SpeechLabel = script.Parent.SpeechLabel
SpeechLabel.Text = TextBox.Text
Однако вы, вероятно, захотите добавить текст, когда они пишут его в TextBox. Затем нам нужно взглянуть на документацию для ROBLOX и, в частности, TextBox Object.
Если вы прокрутите список до событий, вы можете посмотреть событие TextBox.Changed. Это срабатывает каждый раз, когда изменяется свойство TextBox. Мы также можем использовать TextBox.FocusLost, который запускается, когда клиент не сфокусировал TextBox. Событие поставляет логическое «enterPressed», которое сообщает нам, нажал ли клиент enter, чтобы потерять фокус.
local TextBox = script.Parent.TextBox
local SpeechLabel = script.Parent.SpeechLabel
TextBox.FocusLost:Connect(function(enterPressed)
if enterPressed then -- Checking if the enterPressed is true and not nil
-- The user must have pressed enter to exit the TextBox.
-- Could mean that they're done writing something.
SpeechLabel.Text = TextBox.Text
end
end)
Все события должны быть связаны с использованием метода: Connect. Это то, что говорит ROBLOX, чтобы начать «прослушивание» события, чтобы убедиться, что функция срабатывает каждый раз, когда это происходит.
Очевидно, что это будет то, что находится в свойствах, это то, что означает .Text. – warspyking