PlayFabのカスタム インベントリ インスタンス データとやらに触れただけ

今回はPlayFabのインベントリのデータが気になり少し見てみた。テストで
Rifleという名前のアイテムを作成し、インベントリに入れてみてから赤い〇のところをクリックしたら

こういうのが出てきた。

Unityのスクリプトで「キー」と「値」を変更出来ないかなーって思いカタカタ…と5分経過した結果


void Inventory()
{    
    PlayFabClientAPI.GetUserInventory(new PlayFab.ClientModels.GetUserInventoryRequest()
    {
        
    }, result =>
    {
        foreach(var inv in result.Inventory)
        {
            //Rifleという名前のItemIdだけ変更
            if (inv.ItemId == "Rifle")
            {
                //アイテムのカスタムデータを変更する
                PlayFabServerAPI.UpdateUserInventoryItemCustomData(new UpdateUserInventoryItemDataRequest()
                {
                    PlayFabId = status.myPlayfabId,
                    ItemInstanceId = inv.ItemInstanceId,
                    Data = new Dictionary<string, string>
                {
                    {"Damage",damage.ToString() },
                    {"Ammo", ammo.ToString()},
                }

                }, customResult =>
                {
                    Debug.Log($"CustomResult");
                }, customError =>
                {
                    if (inv.DisplayName == "Rifle" && inv.CustomData == null)
                    {

                        Debug.Log($"{customError.GenerateErrorReport()}");

                    }

                });

            }


        }
        Debug.Log($"サーバーインベントリには{result.Inventory.Count}個入っています");

    }, error =>
    {
        Debug.Log(error.GenerateErrorReport());

    });
}

こんな感じでやってみた結果

青くなってて中身をのぞいたら

こうなってた。
何かに使えると思うから一応共有しとくね。
ちなみにコードに

using PlayFab.ServerModels;
って必要だった気がするから気を付けてね。

この記事が気に入ったらサポートをしてみませんか?