グローバル同期変数#

「グローバル同期変数」は 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