ClusterScript.stateに保存・ItemHandle.sendで送信可能な型です。

具体的には、以下の値がSendableです。

特に、Sendableは undefined を含みません。

Sendableではない値からSendableへの変換

undefinedなどのSendableではない値をSendableを要求するAPIに渡した場合、以下のルールに基づいて取り扱われます。

  • undefinedなどのSendableではない値を直接渡した場合、APIに応じて例外になるか無視されます。
  • undefinedなどのSendableではない値を含む配列を渡した場合、Sendableではない値をnullに変換することでSendableとして扱われます。
  • undefinedなどのSendableではない値を値として含むobjectを渡した場合、対応するkey-valueを削除することでSendableとして扱われます。

これらの挙動が発生した場合、スクリプトコンソールに警告メッセージが表示されます。 また、これらの挙動は将来的なアップデートで例外になるように変更される予定です。

SendableからPlayerScriptSendableへの変換

SendableをPlayerScriptに送信した場合、PlayerScriptSendableとして扱えない値は以下のルールに基づいてPlayerScriptSendableに変換されます。

  • PlayerHandle は同じプレイヤーを指し示す PlayerId になります。
  • ItemHandle は同じアイテムを指し示す ItemId になります。
  • 配列とobjectの中身もそれに応じて変換されます。

Example

$.state.exampleKey1 = 1; // numberを書き込む
$.state.exampleKey2 = "hello"; // stringを書き込む
$.state.exampleKey3 = true; // booleanを書き込む
$.state.exampleKey4 = { foo: "bar" }; // objectを書き込む
$.state.exampleKey5 = [1, 2, 3]; // arrayを書き込む
$.state.exampleKey6 = { // 複雑なオブジェクトを書き込む
array: [1, 2, 3],
object: { foo: "bar" },
};

Example

itemHandle.send("message1", 10); // numberを送信する
itemHandle.send("message2", "hello"); // stringを送信する
itemHandle.send("message3", true); // booleanを送信する
itemHandle.send("message4", { foo: "bar" }); // objectを送信する
itemHandle.send("message5", [1, 2, 3]); // arrayを送信する
itemHandle.send("message6", { // 複雑なオブジェクトを送信する
array: [1, 2, 3],
object: { foo: "bar" },
});

Generated using TypeDoc