この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
vci:script:reference:exportstate [2021/11/17 21:11] numa |
vci:script:reference:exportstate [2024/02/04 13:08] (現在) Ramen [Set] 保存できる型を修正 |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== ExportState ====== | + | ~~NOTOC~~ |
+ | ====== ExportState(アイテム内同期変数) ====== | ||
+ | <WRAP center round important 80%> | ||
+ | |||
+ | このページは過去の情報となります。\\ | ||
+ | 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/|こちら]]**になります。 | ||
+ | </WRAP> | ||
アイテム内同期変数((実装当初は「状態変数」と呼ばれておりましたが、命名が見直されて「アイテム内同期変数」となりました。これは「[[vci/script/reference/exportshared|グローバル同期変数]]」と並ぶ「[[vci/script/reference/syncvariable|同期変数]]」の一つであることを明示するためです。)) 。特定のアイテムに紐づく変数を持たせる機能です。 | アイテム内同期変数((実装当初は「状態変数」と呼ばれておりましたが、命名が見直されて「アイテム内同期変数」となりました。これは「[[vci/script/reference/exportshared|グローバル同期変数]]」と並ぶ「[[vci/script/reference/syncvariable|同期変数]]」の一つであることを明示するためです。)) 。特定のアイテムに紐づく変数を持たせる機能です。 | ||
ライン 10: | ライン 16: | ||
* スタジオの場合: リセットされる | * スタジオの場合: リセットされる | ||
- | ---- | + | ^ 名前 ^ 説明 ^ バージョン ^ |
+ | | [[vci/script/reference/exportstate#Set]] | Stateに値を設定 | | | ||
+ | | [[vci/script/reference/exportstate#Get]] | Stateの値を取得 | | | ||
+ | | [[vci/script/reference/exportstate#Add(非推奨)]] | Stateに値を加算 | | | ||
+ | | [[vci/script/reference/exportstate#GetHashCode]] | ハッシュ値を取得 | | | ||
+ | | [[vci/script/reference/exportstate#ToString]] | 文字列に変換 | | | ||
+ | |||
+ | === サンプル === | ||
- | 例: | ||
<file lua main.lua> | <file lua main.lua> | ||
ライン 40: | ライン 52: | ||
- | ===== Set() ===== | + | ===== Set ===== |
- | ==== 引数 ==== | + | **Set fun(name: string, value: usertype):** |
- | * name : string | + | |
- | * value : number, string | + | |
- | + | ||
- | ==== 概要 ==== | + | |
値をセットすることを**要求**します。(Setできるまでラグがあります)\\ | 値をセットすることを**要求**します。(Setできるまでラグがあります)\\ | ||
- | セットできる型は **number型** と **string型** です。 \\ | + | セットできる型は下記になります |
- | Tableはまだ未対応なので、複数のデータを1つの変数に格納する場合はパースする必要があります。\\ | + | * nil |
- | (パース:複数のデータをまとめて保存し、取り出した後に個別のデータに変換する処理)\\ | + | * boolean |
+ | * number | ||
+ | * string | ||
+ | * table | ||
- | ==== Setのラグについて ==== | + | === Setのラグについて === |
''vci.state.Set("value", 1)'' を実行したフレームは、あくまでサーバーに送信する予約のようなもので、\\ | ''vci.state.Set("value", 1)'' を実行したフレームは、あくまでサーバーに送信する予約のようなもので、\\ | ||
実際に反映されるには少なくとも、Setを実行したフレームを終了する必要があります。\\ | 実際に反映されるには少なくとも、Setを実行したフレームを終了する必要があります。\\ | ||
- | グローバル同期変数はサーバー側に保存されるため、通信のラグを見越した処理が必要です。\\ | + | グローバル同期変数はサーバー側に保存されるため、通信のラグを見越した処理が必要です。 |
- | + | ||
- | 例: | + | |
+ | === サンプル === | ||
<file lua main.lua> | <file lua main.lua> | ||
ライン 84: | ライン 94: | ||
</file> | </file> | ||
- | ===== Get() ===== | + | ===== Get ===== |
- | ==== 引数 ==== | + | **Get fun(name: string): usertype** |
- | * name : string | + | |
- | ==== 返り値 ==== | ||
- | * 自分、もしくは他のユーザーがSet, Addした値。 | ||
- | * 初期値は nil です。 | ||
- | |||
- | ==== 概要 ==== | ||
+ | === サンプル === | ||
<file lua main.lua> | <file lua main.lua> | ||
local value = vci.state.Get('value' ) | local value = vci.state.Get('value' ) | ||
</file> | </file> | ||
- | ===== Add() ===== | + | ===== Add(非推奨) ===== |
- | ==== 引数 ==== | + | **Add fun(name: string, value: usertype):** |
- | * name : string | + | |
- | * value : number | + | |
- | + | ||
- | ==== 概要 ==== | + | |
- | 応用編になります。 | + | |
- | 複数ユーザーが同時に値を変更する場合向けです。 | + | |
- | + | ||
- | 複数のユーザーが同時に、Getした値に加算した値 をセットした場合にうまくいかない場合があります。 | + | |
- | 例: | + | === サンプル === |
+ | 複数ユーザーが同時に値を変更する場、Getした値に加算した値 をセットするとうまくいかない場合があります。 | ||
<file lua main.lua> | <file lua main.lua> | ||
ライン 125: | ライン 123: | ||
上記のスクリプトを2人以上のユーザーが同時に実行した場合に実行回数分加算できます。 | 上記のスクリプトを2人以上のユーザーが同時に実行した場合に実行回数分加算できます。 | ||
+ | |||
+ | |||
+ | ===== GetHashCode ===== | ||
+ | **GetHashCode fun(): number** | ||
+ | |||
+ | ハッシュ値を求めます。 | ||
+ | |||
+ | ===== ToString ===== | ||
+ | **ToString fun(): string** | ||
+ | |||
+ | 文字列に変換します。 |