Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:updatelog:1.5.1a

VirtualCast 1.5.1a VCI更新

アイテムの状態を変数として同期する機能

アイテム変数をネットワークを介して同期する vci.state と、 それを使うのに必要な updateAll, vci.assets.IsMine, ExportTransform(SubItem).IsMine を追加します

updateAll と vci.state の使用例

function updateAll() -- 所有権に関係なく全ユーザーに来る
	if vci.state.Get("TOGGLE") then
		vci.assets.SetMaterialColorFromIndex(0, Color.__new(1, 0, 0, 1)) 
	else
		vci.assets.SetMaterialColorFromIndex(0, Color.__new(1, 1, 1, 1)) 
	end		
end
 
function onUse() -- 使用時
	local toggle = vci.state.Get("TOGGLE")	
	vci.state.Set("TOGGLE", not toggle)	
end	

変更前

だいたい同じことをする例です。

TOGGLE="ITEM_UNIQUE_TOGGLE" -- 同じアイテムが複数持ち込まれたときにスタジオ内でユニークにならない弱点
 
vci.studio.shared.Bind(TOGGLE, function(value) -- Bind関数が難しい
	if value then
		vci.assets.SetMaterialColorFromIndex(0, Color.__new(1, 0, 0, 1)) 
	else
		vci.assets.SetMaterialColorFromIndex(0, Color.__new(1, 1, 1, 1)) 
	end		
end)
 
function onUse() -- 使用時
    local value = vci.studio.shared.Get(TOGGLE)
    vci.studio.shared.Set(TOGGLE, not value)
end	

vci.assets.IsMine

function updateAll() -- 所有権に関係なく全ユーザーに来る
    if vci.assets.IsMine then
        -- 処理
    end
end
 
-- 上と同じ意味になります
function update() -- VCIの所有者(VCIを呼び出したユーザー)に来る
    -- 処理
end

ExportTransform(SubItem).IsMine

subitem = vci.assets.GetTransform('item_name')
 
function updateAll() -- 所有権に関係なく全ユーザーに来る
    if subitem.IsMine then -- SubItemの所有者だけで処理したい
        subitem.SetPosition = Vector3.__new(1, 2, 3)
    end
end
vci/updatelog/1.5.1a.txt · 最終更新: 2022/03/06 23:11 by Ramen

ページ用ツール