グローバル同期変数#
「グローバル同期変数」は VCI のネットワーク同期手段のひとつです。
特定のVCIインスタンスに紐づかず、ルームやスタジオなどの空間に紐づいた変数をネットワーク同期できます。
それぞれの変数は変数名と値のペアで、変数名にはstring
を、値にはnil|boolean|number|string|table
を指定できます。
グローバル同期変数を制御するAPIはExportShared
クラスによって提供されます。
変数はExportShared.Set()
で設定し、ExportShared.Get()
で取得します。
注釈
グローバル同期変数は「その場から人がいなくなると変数が初期化される」という欠点があり、ルームでの使用は推奨されません。
ルームでは以下の代替策を検討してください。
Example#
Useされた回数をグローバル同期変数に保存するスクリプトの例です。
-- グローバル同期変数 "count" に値が設定されていない場合、初期化
if vci.assets.IsMine then
if vci.vc.studio.shared.Get("var1") == nil then
vci.vc.studio.shared.Set("var1", 0)
end
end
-- グローバル同期変数 "var1" のローカルキャッシュ
local localVar1
-- 値が変化したらコンソールに表示する
function updateAll()
local syncedVar1 = vci.vc.studio.shared.Get("var1")
if localVar1 ~= syncedVar1 then
print("var1: " ..tostring(syncedVar1))
localVar1 = syncedVar1
end
end
-- Useするとグローバル同期変数 "var1" の値を1増やす
function onUse(usedSubItemName)
vci.vc.studio.shared.Set("var1", localVar1 + 1)
end