인벤토리 + 빌드용 아이템 리스트 ui 추가
This commit is contained in:
parent
2c00c795f6
commit
00e2489036
@ -1,46 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace DDD
|
|
||||||
{
|
|
||||||
public class Inventory : MonoBehaviour
|
|
||||||
{
|
|
||||||
Dictionary<string, Item> inventory;
|
|
||||||
private List<RectTransform> unusedItems;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
var task= GoogleSheetManager.LoadSo<ItemSo>();
|
|
||||||
var items = task.Result;
|
|
||||||
|
|
||||||
unusedItems = new List<RectTransform>();
|
|
||||||
|
|
||||||
// TODO: 데이터에서 가져오기
|
|
||||||
inventory = new Dictionary<string, Item>();
|
|
||||||
inventory["0"] = items.ItemList[0];
|
|
||||||
inventory["1"] = items.ItemList[1];
|
|
||||||
inventory["2"] = items.ItemList[2];
|
|
||||||
UpdateItemList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UpdateItemList()
|
|
||||||
{
|
|
||||||
RectTransform inventoryRoot;
|
|
||||||
RectTransform itemPrefab;
|
|
||||||
|
|
||||||
var counts = inventoryRoot.childCount;
|
|
||||||
for (int i = 0; i < counts; ++i)
|
|
||||||
{
|
|
||||||
var child = inventoryRoot.GetChild(0);
|
|
||||||
unusedItems.Add(child as RectTransform);
|
|
||||||
child.SetParent(null);
|
|
||||||
child.gameObject.SetActive(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in inventory)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
8
Assets/Scirpts/ItemBuild.meta
Normal file
8
Assets/Scirpts/ItemBuild.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9a48bb4383d2a5549ae3cb55883e22ad
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
61
Assets/Scirpts/ItemBuild/Inventory.cs
Normal file
61
Assets/Scirpts/ItemBuild/Inventory.cs
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DDD
|
||||||
|
{
|
||||||
|
public class Inventory : MonoBehaviour
|
||||||
|
{
|
||||||
|
public RectTransform inventoryRoot;
|
||||||
|
public ItemUI itemPrefab;
|
||||||
|
|
||||||
|
private Dictionary<string, Item> inventory;
|
||||||
|
private Stack<ItemUI> unusedItemUIs;
|
||||||
|
private Transform unusedRoot;
|
||||||
|
|
||||||
|
private async void Start()
|
||||||
|
{
|
||||||
|
var task = GoogleSheetManager.LoadSo<ItemSo>();
|
||||||
|
var items = await task;
|
||||||
|
|
||||||
|
itemPrefab.transform.SetParent(null);
|
||||||
|
itemPrefab.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
unusedItemUIs = new Stack<ItemUI>();
|
||||||
|
var obj = new GameObject("UnusedRoot");
|
||||||
|
obj.SetActive(false);
|
||||||
|
unusedRoot = obj.transform;
|
||||||
|
|
||||||
|
// TODO: 데이터에서 가져오기
|
||||||
|
inventory = new Dictionary<string, Item>();
|
||||||
|
inventory["0"] = items.ItemList[0];
|
||||||
|
inventory["1"] = items.ItemList[1];
|
||||||
|
inventory["2"] = items.ItemList[2];
|
||||||
|
UpdateItemList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateItemList()
|
||||||
|
{
|
||||||
|
var counts = inventoryRoot.childCount;
|
||||||
|
for (int i = 0; i < counts; ++i)
|
||||||
|
{
|
||||||
|
var child = inventoryRoot.GetChild(0);
|
||||||
|
unusedItemUIs.Push(child.GetComponent<ItemUI>());
|
||||||
|
child.SetParent(unusedRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in inventory)
|
||||||
|
{
|
||||||
|
var usingPool = unusedItemUIs.TryPop(out var itemObject);
|
||||||
|
|
||||||
|
if (usingPool == false)
|
||||||
|
{
|
||||||
|
itemObject = Instantiate(itemPrefab.gameObject).GetComponent<ItemUI>();
|
||||||
|
}
|
||||||
|
itemObject.gameObject.SetActive(true);
|
||||||
|
itemObject.transform.SetParent(inventoryRoot);
|
||||||
|
itemObject.SetUpItem(item.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
Assets/Scirpts/ItemBuild/ItemUI.cs
Normal file
21
Assets/Scirpts/ItemBuild/ItemUI.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using DDD;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class ItemUI : MonoBehaviour
|
||||||
|
{
|
||||||
|
public TextMeshProUGUI nameText;
|
||||||
|
|
||||||
|
private Item _item;
|
||||||
|
|
||||||
|
public void SetUpItem(Item item)
|
||||||
|
{
|
||||||
|
_item = item;
|
||||||
|
UpdateItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateItem()
|
||||||
|
{
|
||||||
|
nameText.text = _item.Name;
|
||||||
|
}
|
||||||
|
}
|
2
Assets/Scirpts/ItemBuild/ItemUI.cs.meta
Normal file
2
Assets/Scirpts/ItemBuild/ItemUI.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 850a1aa7f7d1eb94a894d47d98a02d8f
|
Loading…
Reference in New Issue
Block a user