vci:script:reference:exportshared

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
vci:script:reference:exportshared [2021/11/17 21:12]
numa
vci:script:reference:exportshared [2023/06/01 11:13] (現在)
pastatto リファレンスページの注意書き追加
ライン 1: ライン 1:
-====== ExportShared ​====== +~~NOTOC~~ 
-グローバル同期変数((実装当初は「共有変数」と呼ばれておりましたが、命名が見直されて「グローバル同期変数」となりました。これは「[[vci/​script/​reference/​exportstate|アイテム内同期変数]]」と並ぶ「[[vci/​script/​reference/​syncvariable|同期変数]]」の一つであることを明示するためです。)) 。特定のアイテムに結び付かずに、部屋に変数を保存する機能です。+====== ExportShared(グローバル同期変数) ​====== 
 +<WRAP center round important 80%>
  
-----+このページは過去の情報となります。\\ 
 +新しいスクリプトリファレンスは**[[https://​developer.virtualcast.jp/​vci-docs/​api/​|こちら]]**になります。 
 +</​WRAP>​ 
 +グローバル同期変数((実装当初は「共有変数」と呼ばれておりましたが、命名が見直されて「グローバル同期変数」となりました。これは「[[vci/​script/​reference/​exportstate|アイテム内同期変数]]」と並ぶ「[[vci/​script/​reference/​syncvariable|同期変数]]」の一つであることを明示するためです。)) 。\\ 
 +特定のアイテムに結び付かずに、部屋に変数を保存する機能です。
  
 +^ 名前 ^ 説明 ^ バージョン ^
 +| [[vci/​script/​reference/​exportshared#​Set]] | Stateに値を設定 | |
 +| [[vci/​script/​reference/​exportshared#​Get]] | Stateの値を取得 | |
 +| [[vci/​script/​reference/​exportshared#​Add(非推奨)]] | Stateに値を加算 | |
 +| [[vci/​script/​reference/​exportshared#​Bind]] | ユーザー名を取得 | |
 +| [[vci/​script/​reference/​exportshared#​GetHashCode]] | ハッシュ値を取得 | |
 +| [[vci/​script/​reference/​exportshared#​ToString]] | 文字列に変換 | |
 +
 +
 +
 +===== Set =====
 +**Set fun(name: string, value: usertype)**
 +
 +Stateに値を設定します。
 +
 +=== サンプル ===
 <file lua main.lua>​ <file lua main.lua>​
 if vci.assets.IsMine then -- 呼び出したユーザーが代表して初期化する if vci.assets.IsMine then -- 呼び出したユーザーが代表して初期化する
ライン 20: ライン 41:
 </​file>​ </​file>​
  
-Bind は updateAll と似ていますが、ちょっと違います。 
  
-<file lua main.lua>​ +===== Get ===== 
--- Bind。値が変更されたタイミングだけ呼ばれる +**Get fun(name: string)**
-vci.studio.shared.Bind('​switch',​ function(value) +
-    if value==1 then +
-        ​vci.assets.SetMaterialColorFromIndex(4, Color.__new(1,​ 0, 0, 1)+
-    else +
-        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(0.5,​ 0.5, 0.5, 1)) +
-    end +
-end) +
-</​file>​+
  
-<file lua main.lua>​ +Stateのを取得します。
--- Bind。が変更されなくても毎フレーム呼ばれる +
-function updateAll() -- 所有権に関係なく全ユーザーに来る +
-    --print(vci.state.Get('​switch'​)) +
-    if vci.studio.shared.Get('​switch'​)==1 then +
-        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(1,​ 0, 0, 1)) +
-    else +
-        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(0.5,​ 0.5, 0.5, 1)) +
-    end +
-end +
-</​file>​+
  
-===== Set() ===== +===== Add(非推奨) ===== 
-==== 引数 ==== +**Add fun(name: stringvalue: ​usertype)**
-  ​* name : string +
-  * value : number, string+
  
-===== Get() ===== +Stateにを加算します。
-==== 引数 ==== +
-  * name : string +
-==== 返り値 ==== +
-  * number, string+
  
-===== Bind() ===== +[[vci/​script/​reference/​exportstate#​Add|ExportState.Add]]を参照してください。
-==== 引数 ==== +
-  * name : string +
-  * callback : 関数 +
- +
-==== 概要 ==== +
-初期に updateAll が無かったために実装されました。 +
- +
-===== Add() ===== +
-==== 引数 ==== +
-  * name : string +
-  * value : usertype +
- +
-==== 概要 ==== +
-ExportState.Addを参照してください。+
  
 ===== グローバル同期変数の弱点と代替策 ===== ===== グローバル同期変数の弱点と代替策 =====
ライン 111: ライン 93:
 ちょっと大変です。 ちょっと大変です。
  
 +
 +===== Bind =====
 +**Bind fun(name: string, callback: usertype)**
 +
 +同期変数の値が変更されたときに実行されます。\\
 +初期に updateAll が無かったために実装されました。
 +
 +
 +=== サンプル ===
 +Bind は updateAll と似ていますが、ちょっと違います。
 +
 +<file lua main.lua>​
 +-- Bind。値が変更されたタイミングだけ呼ばれる
 +vci.studio.shared.Bind('​switch',​ function(value)
 +    if value==1 then
 +        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(1,​ 0, 0, 1))
 +    else
 +        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(0.5,​ 0.5, 0.5, 1))
 +    end
 +end)
 +</​file>​
 +
 +<file lua main.lua>​
 +-- updateAll。値が変更されなくても毎フレーム呼ばれる
 +function updateAll() -- 所有権に関係なく全ユーザーに来る
 +    --print(vci.state.Get('​switch'​))
 +    if vci.studio.shared.Get('​switch'​)==1 then
 +        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(1,​ 0, 0, 1))
 +    else
 +        vci.assets.SetMaterialColorFromIndex(4,​ Color.__new(0.5,​ 0.5, 0.5, 1))
 +    end
 +end
 +</​file>​
 +
 +===== GetHashCode =====
 +**GetHashCode fun(): number**
 +
 +ハッシュ値を求めます。
 +
 +===== ToString =====
 +**ToString fun(): string**
 +
 +文字列に変換します。
vci/script/reference/exportshared.1637151123.txt.gz · 最終更新: 2021/11/17 21:12 by numa

ページ用ツール