🐙
【Roblox開発】RemoteFunctionを利用してローカルスクリプトから値を入れて送る方法
RemoteFunctionとは
サーバーとクライアント間で情報をやり取りするときに使うものになります。
RemoteEvent
と違うところは送信したら確実にレスポンスが返ってくるところです。
よくある利用例
自分の装備をサーバー側で変更し自分の端末のUIを変更する
- クライアントで装備ボタンを押す
- サーバーで自分のcharacterの装備を変更する
- 変更完了したらtrueというbool値を返す
- クライアントでtrueというレスポンスを受け取り装備UIを閉じる
ネットワークの通信の関係で変更できなかった場合レスポンスに何も返らないのでif文でrespons = nilで判定することで失敗したというUIを表示するみたいなことができる。
公式リンク
セットアップ
ローカルスクリプト
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local functions = ReplicatedStorage:WaitForChild("Functions")
local sampleFunction = functions:WaitForChild("SampleFunction")
Button.Activated:Connect(function()
print("Button")
local sampleText = "Test"
local response = sampleFunction:InvokeServer(sampleText)
print("Response:".. response) -- 出力は "Response: response"
end)
サーバースクリプト
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local functions = ReplicatedStorage:WaitForChild("Functions")
local sampleFunction = functions:WaitForChild("SampleFunction")
sampleFunction.OnServerInvoke = function(player,value)
print("Value is "..value) -- 出力は "Value is Test"
local sampleText = "response"
return sampleText
end
Discussion