ReplicatedStorage
は Roblox のサービスで、データをクライアント(プレイヤーのPC)とサーバー(ゲームのホストコンピュータ)間で共有するための特別な場所を提供します。ReplicatedStorage
に格納されたデータは、クライアントとサーバーでアクセス可能です。そのため、リモートイベントやリモート関数、またはクライアントとサーバー間で共有する必要のあるその他のデータを格納するのによく使われます。
以下に、ReplicatedStorage
を使用してサーバーとクライアント間でデータを共有する一例を示します。
サーバー側のスクリプト
このプログラムは、ServerScriptService 等に設置(Script)します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 新しいStringValueを作成し、それをReplicatedStorageに保存
local sv = Instance.new("StringValue")
sv.Name = "SharedData"
sv.Value = "This is some shared data."
sv.Parent = ReplicatedStorage
クライアント側のスクリプト
このプログラムは、StarterGui 等に設置(LocalScript)します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- サーバーが ReplicatedStorage に保存したデータを取得
local sharedData = ReplicatedStorage:WaitForChild("SharedData")
-- データを表示
print(sharedData.Value) -- "This is some shared data."
この例では、サーバースクリプトが ReplicatedStorage
に StringValue
を保存し、その値を設定します。その後、ローカル(クライアント)スクリプトがその StringValue
を取得し、その値を表示します。これは ReplicatedStorage
がサーバーとクライアント間でデータを共有するための方法の一例です。
また、下記のように Changed イベントを使用することもできます。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- サーバーが ReplicatedStorage に保存したデータを取得
local sharedData = ReplicatedStorage:WaitForChild("SharedData")
-- データを表示
sharedData.Changed:Connect(function()
print(sharedData.Value) -- "This is some shared data."
end)
このようにすると、サーバー側で SharedData.Value に値を代入するだけで、全クライアントのChanged イベントが呼ばれることになります。