• Unity3D之储存背包界面里面的物品


    1存储:遍历整个背包的格子。将有子物体的格子给储存下来

      public void SaveInventory()
        {
            StringBuilder sb = new StringBuilder();
            foreach (Slot slot in slotList)
            {
                if (slot.transform.childCount > 0)
                {
                    ItemUI itemUI = slot.transform.GetChild(0).GetComponent<ItemUI>();
                    sb.Append(itemUI.Item.ID + ","+itemUI.Amount+"-");
                }
                else
                {
                    sb.Append("0-");
                }
            }
            PlayerPrefs.SetString(this.gameObject.name, sb.ToString());
        }

    2加载:

    public void LoadInventory()
        {
            if (PlayerPrefs.HasKey(this.gameObject.name) == false) return;
            string str = PlayerPrefs.GetString(this.gameObject.name);
            //print(str);
            string[] itemArray = str.Split('-');
            for (int i = 0; i < itemArray.Length-1; i++)
            {
                string itemStr = itemArray[i];
                if (itemStr != "0")
                {
                    //print(itemStr);
                    string[] temp = itemStr.Split(',');
                    int id = int.Parse(temp[0]);
                    Item item = InventoryManager.Instance.GetItemById(id);
                    int amount = int.Parse(temp[1]);
                    for (int j = 0; j < amount; j++)
                    {
                        slotList[i].StoreItem(item);
                    }
                }
            }
        }

  • 相关阅读:
    linux自动挂载
    VUE 封装 api类
    数据库中如何判断某参数为空就不执行where条件
    axios 拦截 , 页面跳转, token 验证(非本人原创)
    springboot 集成 WebSocket (非本人原创)
    spring cloud整合 websocket 的那些事
    前后端消息推送
    spring cloud 之eureka配置
    spring cloud 之demo
    linux 进程的 5 大段
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/6841762.html
Copyright © 2020-2023  润新知