这是本地脚本
button.Activated:Connect(function()
remoteEvent:FireServer(button.Text.Text)
game.Workspace.DimensionConfig.Value.Value = button.Text.Text
end)
这是工作区中的服务器脚本。
local function changeValue(Name)
print("Did that")
print(Name)
game.Workspace.DimensionConfig.Value.Value = Name
end
remoteEvent.OnServerEvent:Connect(changeValue)
然后输出
Did that - Server - Script:5
(my username) - Server - Script:6
Unable to assign property Value. string expected, got Instance
我不知道为什么它会打印我的用户名。
您只是忘记了使用播放器参数。将您的代码更改为此
local function changeValue(player, Text)
print("Did that")
print(player)
print(Text)
-- Prints the player Name and text being sent.
game.Workspace.DimensionConfig.Value.Value = Text
end
remoteEvent.OnServerEvent:Connect(changeValue)
这应该行得通。对于远程事件,总是确保添加一个";玩家";事件函数的参数。当激发要接收的远程事件时,服务器端。服务器总是需要知道是谁发送的。
看起来错误在remoteEvent:FireServer(button.Text.Text())
中。假设您有一个名为";文本";在按钮内部,您试图将该按钮的文本(字符串值(作为函数调用。
请尝试将该行更改为remoteEvent:FireServer(button.Text.Text)
。