あなたの世界を作りなさい
データストレージ
ワールドデータストレージ
7min
zepetoのデータストレージは、ユーザーのゲームプレイデータをワールドごとに保存および管理するリモートデータベースです。 これは、ユーザーidによって保存および管理されるため、複数のプレイセッションにわたって維持または更新する必要があるユーザーのゲームプレイデータを保存するのに適しています。 ユーザーのプレイデータを管理するには、 api https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/ を使用して、zepetoマルチプレイサーバーで利用可能です。 zepeto studioのワールドデータ管理メニューから、データストレージに保存されたユーザー特有のプレイデータを表示および変更できます。 📘 次のガイドを参照してください。 \[ ワールドデータ管理 docid\ wvwacugfkav44sw4ukrkz ] データストレージapi 📘 以下のapiリファレンスを参照してください。 zepeto multiplay datastorage api https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage サーバーコード index ts サンドボックスに記入してください。 unityエディタ環境のローカルサーバーでは、サーバーがシャットダウンされ再起動されるとデータは保持されません。 ワールドデプロイ後、データはzepeto dbに保存され、維持されます。 以下のルールが満たされない場合、データは保存されません: 値が提供されていない 保存できない値が入力されている データストレージ制約 キーの長さ制限:50文字 キーにはアルファベット、数字、アンダースコア( )のみが許可されています。 最大キー数:ユーザーidごとに1000 最大値データサイズ:500,000文字 値データは、実際のサーバーに保存される際に内部識別子と共にシリアライズされることに注意してください。安全マージンを持って使用してください。 単一キーのデータを読み書き/削除する ローカルプレイヤーのdatastorageで単一のキーのデータを読み書きおよび削除できます。 datastorage get https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#get , datastorage set https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#set と datastorage remove https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#remove import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { // ローカルプレイヤーのデータストレージを読み込む const playerstorage datastorage = client loaddatastorage(); // 'level'キーに関連付けられた値を取得 	 let playerlevel = await playerstorage get("level") as number; if (playerlevel == null) { playerlevel += 1; } // 増加した値を保存 await playerstorage set("level", playerlevel); // データを削除 await playerstorage remove("level"); } } 複数のキーのデータを読み書きする ローカルプレイヤーのデータストレージを使用して、複数のキーのデータを読み書きおよび削除できます。 datastorage mget https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#mget と datastorage mset https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#mset import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { const storage = client loaddatastorage(); // mset (マルチキー値) ストア const success = await storage mset\<number>(\[ { key 'key1', value 1 }, { key 'key2', value 2 } ]); // 成功した場合 if (success) { // key1 と key2 の値を一度に取得 const keys = \['key1', 'key2']; const keyvaleus = await storage mget(keys); keys foreach(key => { const value = keyvaleus\[key]; console log(value); }); } } } エラーハンドリング datastorage apiを呼び出す際に発生する例外に対して適切なハンドリングを実装することができます。これは、 datastorageerror https //developer zepeto me/docs/multiplay server/enums/zepeto multiplay datastorage datastorageerror で定義されたエラータイプを参照してください。 import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { // ローカルプレイヤーのデータストレージを読み込む const playerstorage datastorage = client loaddatastorage(); try { let playerlevel = await playerstorage get("level") as number; } catch (error) { let systemerror = (error as systemerror); if (systemerror code === datastorageerror unknown || systemerror code === datastorageerror networkerror) { // システムエラーまたはネットワークエラー console log(systemerror message); } else if (systemerror code === datastorageerror keyconstraintviolated) { // キー制約違反 console log(systemerror message); } else if (systemerror code === datastorageerror valueconstraintviolated) { // 値制約違反 console log(systemerror message); } } } } ユーザーidによるデータストレージへのアクセス 特定のユーザーのデータストレージにユーザーidを使用してアクセスすることも可能です。 datastorage loaddatastorage https //developer zepeto me/docs/multiplay server/namespaces/zepeto multiplay datastorage? highlight=loaddatastorage#loaddatastorage , ローカルプレイヤーのデータストレージの代わりに。 const userstorage datastorage = await loaddatastorage(userid); 👍 ヒント 異なるワールド間でデータを保存したい場合は、 マルチプレイサーバーからのhttpリクエスト docid\ j nft3mgr01aejrhqdhas を使用して実装してください。