InventorySystem.InventorySort์ตœ๊ทผ ์ด๋ฆ„์ด๋‚˜ ํŠน์ • ์ž๋ฃŒ ์ˆœ์„œ๋กœ ์ •๋ ฌ ๊ฐ€๋Šฅํ•œ ์ธ๋ฒคํ† ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด์ง

๊ทผ๋ฐ List๋‚˜ ๋ฐฐ์—ด์„ย ์ด์šฉํ•ด์„œ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์€ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ย ๊ผฌ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ

๊ทธ๋ž˜์„œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์“ฐ๊ธฐ๋กœ ํ–ˆ์Œย ย 

[System.Serializable]
public struct Inventory_Struct{
ย  ย  public sbyte Level;
ย  ย  public ItemType Type;
}

์ผ๋‹จ ์ธ๋ฒคํ† ๋ฆฌ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ค์—ˆ์Œ

ย  ย  public int ItemCode;

๊ทธ ๋‹ค์Œ ์ธ๋ฒคํ† ๋ฆฌ์— ๋“ค์–ด๊ฐˆ ์•„์ดํ…œ์˜ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ 

ย  ย  public Dictionary<int,Inventory_Struct> Inventory;

๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ธ๋ฒคํ† ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ

public static void GetItem(ItemType Type){
ย  ย  ย  ย  var data=new Inventory_Struct();
ย  ย  ย  ย  var select=Resource.TreasureData.Lists[Type];
ย  ย  ย  ย  data.Level=0;
ย  ย  ย  ย  data.Type=Type;
ย  ย  ย  ย  DataManager.DataSave.Inventory.Add( Resource.PlayerData.Datas.TreausreCode,data);
ย  ย  ย  ย  DataManager.DataSave.ItemCode++;
ย  ย  }

์•„์ดํ…œ์„ ์ธ๋ฒคํ† ๋ฆฌ์— ์ถ”๊ฐ€ ํ•  ๋•Œ๋Š” ์•„์ดํ…œ ์ฝ”๋“œ๋ฅผ ์ค€๋‹ค์Œ ์ €์žฅํ•  ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋”ํ•ด์ฃผ๋ฉด ํ•ด๋‹น ์ธ๋ฒคํ† ๋ฆฌ ์•„์ดํ…œ์€ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ๋จ


public static class InventorySystem
{
public static List<int>InventorySort;

์ธ๋ฒคํ† ๋ฆฌ ์ •๋ ฌ์— ์‚ฌ์šฉํ•  ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ฌ

public enum ItemTpye{
ย  ย  ์ด๋ฆ„์ˆœ,
ย  ย  ๋ ˆ๋ฒจ๋†’์€์ˆœ,
ย  ย  ๋ ˆ๋ฒจ๋‚ฎ์€์ˆœ,
ย  ย  ํฌ๊ท€๋„๋†’์€์ˆœ,
ย  ย  ํฌ๊ท€๋„๋‚ฎ์€์ˆœ,
}


ย  ย public void InvetorySort(ItemTpye Sort){
ย  ย  ย  ย  InventorySort.Clear();
ย  ย  ย  ย  foreach(var Inv in DataManager.DataSave.Inventory){
ย  ย  ย  ย  ย  ย  InventorySort.Add(Inv.Key);
ย  ย  ย  ย  }
ย  ย  ย  ย  switch(Sort){
ย  ย  ย  ย  ย  ย  case SortEnum.์ด๋ฆ„์ˆœ:
ย  ย  ย  ย  ย  ย  ย  ย  InventorySort=
InventorySort.OrderBy(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Name).ToList();
ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case SortEnum.๋ ˆ๋ฒจ๋‚ฎ์€์ˆœ:
ย  ย  ย  ย  ย  ย  ย  ย  InventorySort=InventorySort.OrderByDescending(X=>DataManager.DataSave.Inventory[X].Level).ToList();
ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case SortEnum.๋ ˆ๋ฒจ๋†’์€์ˆœ:
ย  ย  ย  ย  ย  ย  ย  ย  InventorySort=InventorySort.OrderBy(X=>DataManager.DataSave.Inventory[X].Level).ToList();
ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case SortEnum.ํฌ๊ท€๋„๋‚ฎ์€์ˆœ:
ย  ย  ย  ย  ย  ย  ย  ย  InventorySort=
InventorySort.
OrderByDescending(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Rare).ToList();
ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case SortEnum.ํฌ๊ท€๋„๋†’์€์ˆœ:
ย  ย  ย  ย  ย  ย  ย  ย InventorySort=
InventorySort.OrderBy(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Rare).ToList();
ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  }
ย  ย  }

๊ทธ๋‹ค์Œ ์ธ๋ฒคํ† ๋ฆฌ๋ฅผ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์œผ๋ฉดย ์•„์ดํ…œ ํ‚ค ๊ฐ’์„ List<Int>์— ๋„ฃ๊ณ  List๋ฅผย ์ •๋ ฌํ•จ

์ด๋Ÿฌ๋ฉด List<Int>์—ย ์ ‘๊ทผํ•ด์„œย ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ์ธ๋ฒคํ† ๋ฆฌ์˜ ์•„์ดํ…œ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ

DataManager.DataSave.Inventory[InventorySystem.InventorySort[0]]

์ธ๋ฒคํ† ๋ฆฌ์— ์ฒซ๋ฒˆ์งธ ์•„์ดํ…œ์„ ๊ฐ€์ง€๊ณ  ์˜ค๋ ค๋ฉด ์ด๋Ÿฐ์‹์ธ๋ฐ

public static Inventory_Struct GetItem(int num){
return DataManager.DataSave.Inventory[InventorySort[num]];ย  ย  ย  ย 
}

๊ทธ๋ƒฅ ํŽธํ•˜๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด๋†“๊ณ ย 

InventorySystem.GetItem(0)

๊ฐ€์ ธ์˜ด