2017-02-07 20 views
-2

Всякий раз, когда я пытаюсь выполнить этот набор кода в robloxian lua, я не могу получить доступ к текстовому полю. Этот код является suppost, чтобы сделать это, но я думаю, что его доступ к свойству текста внутри текстового поля. Вот несколько представитель кода, который я использую. Итак, скажем, что Боб хочет поговорить с Джоном. Я бы написал это так.Не удается получить доступ к тексту в Roblox TextBox

game.StarterGui.ScreenGui.Frame.JohnsSpeech.Text = game.StarterGui.ScreenGui.Frame.JohnsUserSetText.Text 

Теперь JohnsUserSetText это текстовое поле, и JohnsSpeech является речь. Но когда я пытаюсь это сделать, это не сработает. Он просто говорит, что текст в свойствах. Любая помощь будет оценена по достоинству. Благодаря! И прекрасно отдохните в этот день!

+0

Очевидно, что это будет то, что находится в свойствах, это то, что означает .Text. – warspyking

ответ

0

Как говорит М. Зигенхорн, ваша проблема в том, что вы имеете в виду 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, чтобы начать «прослушивание» события, чтобы убедиться, что функция срабатывает каждый раз, когда это происходит.

+0

. Я все еще немного смущен тем, как ссылаться на него. – Sbss1111

+0

Что именно вас путает? Я могу попытаться объяснить это лучше. Самое важное, что нужно понять, это различие между StarterGui и PlayerGui. StarterGui - это сервис, который содержит все GUI-элементы, которые каждый игрок должен получить на икру. Если вы вносите изменения в эти объекты, игроки, которые в настоящее время живы, не будут видеть их до тех пор, пока они не появятся. Содержимое может быть доступно из обоих типов сценариев. PlayerGui содержит все GUI-элементы для каждого отдельного игрока. Каждый игрок имеет свой собственный PlayerGui и отображает изменения в реальном времени. Доступ только к LocalScript – Ravenshield

+0

Я смущен тем, как я вхожу в PlayerGUI и нахожу текстовое поле. – Sbss1111

1

Предполагается, что делать? .Text - это свойство текстового поля или чего-либо подобного.

ПРИМЕЧАНИЕ: Вы меняете стартовый гий, что означает, что любой, кто использует этот текущий gui, не получит обновленный, пока не умрет и не возродится. Если вы хотите обновить один в доступе GUI через него Game.Players.playernamehere.PlayerGui

StarterGui является то, что импорт игры в игрок, когда он перезагружает все AKA: паки или присоединиться к

если вам нужны советы по обновлению каждого игрока Gui скажите мне, и я могу привести несколько примеров

+0

Я имею в виду, что хочу получить текст из введенного текстового поля. – Sbss1111

+0

, тогда вы хотели бы сделать то, что вы сделали, но в игровом ги, а не в качестве примера стартера: «game.Players.bob.PlayerGui.ScreenGui.Frame.JohnsSpeech.Text = game.Players.john.PlayerGui.ScreenGui.Frame.JohnsUserText ' –

+0

его важно манипулировать playergui, а не стартер gui, поскольку экран gui используется, когда игрок сначала присоединяется к –