M. Ziegenhornと同じように、あなたの問題はPlayerGuiではなく、StarterGuiを指しているということです。
StarterGuiは、起動時にデフォルトのGUIを含むコンテナですが、PlayerGui(たとえばgame.Players.Ravenshield.PlayerGui)は各プレーヤーのGUIが格納される場所です。 PlayerGuiには、LocalScriptを介してのみアクセスできます。
PlayerGuiにアクセスする最も簡単な方法は、使用しているScreenGuiの中にLocalScriptを配置するだけです。 そうでなければ、あなたも私たちが使っているScreenGuiに直接私のLocalScriptを置くとしたら、それは次のようになりますgame.Players.LocalPlayer.PlayerGui
を行うことで簡単にアクセスできます。
local TextBox = script.Parent.TextBox
local SpeechLabel = script.Parent.SpeechLabel
SpeechLabel.Text = TextBox.Text
を
しかし、テキストボックスにテキストを書き込むたびにテキストを追加することをお勧めします。次に、ROBLOXのドキュメント、具体的にはTextBox Objectを調べる必要があります。
イベントにスクロールすると、TextBox.Changedイベントが表示されます。これは、TextBoxのプロパティが変更されるたびに発生します。 TextBox.FocusLostを使用することもできます。これは、クライアントがTextBoxのフォーカスを外したときに発生します。このイベントは、クライアントがフォーカスを失うためにenterを押したかどうかを示すboolean 'enterPressed'を提供します。
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にイベントが「リッスン」を開始するように指示するものです。イベントが発生するたびにこの関数が起動するようにします。
明らかに、それはプロパティにあるものになります。つまり、テキストは何を指しているのでしょうか。 – warspyking