Exemple #1
0
            /// <summary>
            /// Bag
            /// 템플릿으로?? 한번에??
            /// </summary>

            /* 이름이 같지만 하나는 구조체 하나는 클래스로 서로 연동이 안되서
             * 템플릿으로 한번에 하기 힘들꺼 같다
             * void InvenDataSave<T>(List<T> saveInven, List<GameObject> itemList) where T : new()
             * {
             *  T item = new T(); //where T : new()
             *
             *  //슬롯을 돌면서
             *  for (int i=0; i<itemList.Count;i++)
             *  {
             *      //슬롯의 하위 오브젝트가 있음면
             *      if(itemList[i].transform.childCount != 0)
             *      {
             *          Debug.Log("save Item Info : " + itemList[i].GetComponentInChildren<Black.Inventory.BagItemData>());
             *
             *          //저장된 정보를 저장
             *          item = itemList[i].GetComponentInChildren<T>();
             *          saveInven.Add(item);
             *      }
             *
             *  }
             * }
             */


            /// <summary>
            /// 소모 아이템 저장
            /// </summary>
            void BagItemDataSave(List <BagItemData> saveInven, List <GameObject> itemList)
            {
                Black.Manager.BagItemData   item     = new Black.Manager.BagItemData(); //where T : new()
                Black.Inventory.BagItemData slotData = new Inventory.BagItemData();

                //슬롯을 돌면서
                for (int i = 0; i < itemList.Count; i++)
                {
                    //슬롯의 하위 오브젝트가 있음면
                    if (itemList[i].transform.childCount != 0)
                    {
                        //Debug.Log("save Item Info : " + itemList[i].GetComponentInChildren<Black.Inventory.BagItemData>());

                        //저장된 정보를 저장
                        slotData = itemList[i].GetComponentInChildren <Inventory.BagItemData>();

                        item.id      = slotData._BagItem._Id;
                        item.type    = slotData._BagItem._Type;
                        item.useType = slotData._BagItem._UseType;
                        item.name    = slotData._BagItem._Name;
                        item.value   = slotData._BagItem._Value;
                        item.weight  = slotData._BagItem._Weight;
                        item.count   = slotData.NCount; //개수(데이터의 개수가 아닌 실제 개수 값을 넘김)
                        item.price   = slotData._BagItem._Price;
                        item.tip     = slotData._BagItem._Tip;
                        item.path    = slotData._BagItem._Path;

                        saveInven.Add(item);
                    }
                }
            }
Exemple #2
0
            /// <summary>
            /// 퀵 슬롯은 아이템의 종류룰 파악해야 된다
            /// </summary>
            /// <param name="player"></param>
            /// <param name="itemList"></param>
            void QuickSlotDataSave(List <QuickSlotData> saveInven, List <GameObject> itemList)
            {
                //퀵 슬롯 루프를 돈다
                for (int i = 0; i < itemList.Count; i++)
                {
                    //저장 시킬 아이템이 있는지 확인
                    if (itemList[i].transform.childCount != 0)
                    {
                        if (itemList[i].GetComponentInChildren <Inventory.BagItemData>())
                        {
                            QuickSlotData item = new QuickSlotData();
                            //슬롯에 있는 아이템 정보를 가져온다
                            Inventory.BagItemData slotData = itemList[i].GetComponentInChildren <Inventory.BagItemData>();

                            item.bagItem.id      = slotData._BagItem._Id;
                            item.bagItem.type    = slotData._BagItem._Type;
                            item.bagItem.useType = slotData._BagItem._UseType;
                            item.bagItem.name    = slotData._BagItem._Name;
                            item.bagItem.value   = slotData._BagItem._Value;
                            item.bagItem.weight  = slotData._BagItem._Weight;
                            item.bagItem.count   = slotData.NCount; //개수(데이터의 개수가 아닌 실제 개수 값을 넘김)
                            item.bagItem.price   = slotData._BagItem._Price;
                            item.bagItem.tip     = slotData._BagItem._Tip;
                            item.bagItem.path    = slotData._BagItem._Path;


                            saveInven.Add(item);
                        }

                        //있으면 타입을 확인
                        if (itemList[i].GetComponentInChildren <Inventory.SubItemData>())
                        {
                            QuickSlotData item = new QuickSlotData();
                            //슬롯에 있는 아이템 정보를 가져온다
                            Inventory.SubItemData slotData = itemList[i].GetComponentInChildren <Inventory.SubItemData>();

                            //임시 변수에 저장
                            item.subItem.id       = slotData._SubItem._Id;
                            item.subItem.type     = slotData._SubItem._Type;
                            item.subItem.itemType = slotData._SubItem._ItemType;
                            item.subItem.name     = slotData._SubItem._Name;
                            item.subItem.minDmg   = slotData._SubItem._MinDmg;
                            item.subItem.maxDmg   = slotData._SubItem._MaxDmg;

                            item.subItem.count = slotData.NCount; //개수(데이터의 개수가 아닌 실제 개수 값을 넘김)

                            item.subItem.price = slotData._SubItem._Price;
                            item.subItem.tip   = slotData._SubItem._Tip;
                            item.subItem.path  = slotData._SubItem._Path;

                            saveInven.Add(item);
                        }
                    }
                }
            }