이렇게 오브젝트를 배치 한뒤 Box Script를 작성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Box : MonoBehaviour, IInteractable
{
public GameObject[] itemList;
public GameObject UIprefab;
private void Start()
{
itemList = new GameObject[30];
}
public void Interact()
{
ResourceManager.Instance.Instantiate(UIprefab).GetComponent<UI_Box>().SetBoxItemList(itemList);
}
}
void SetBoxInven()
{
foreach (Transform child in boxInventoryPanel.transform)
Managers.Resource.Destroy(child.gameObject);
//사용가능 인벤토리 + 첫줄은 퀵슬릇 창이랑 동기화
for (int i = 0; i < boxInventory.Length; i++)
{
UI_ItemSlot ItemSlot = Managers.UI.MakeSubItem<UI_ItemSlot>(boxInventoryPanel.transform);
ItemSlot.SetIndex(i, boxInventory, ui_DragSlot);
if (boxInventory[i] != null)
ItemSlot.SetItemInfo(boxInventory[i]);
}
}
void SetPlayerInven()
{
foreach (Transform child in playerinventoryPanel.transform)
Managers.Resource.Destroy(child.gameObject);
//사용가능 인벤토리 + 첫줄은 퀵슬릇 창이랑 동기화
for (int i = 0; i < 10; i++)
{
UI_ItemSlot ItemSlot = Managers.UI.MakeSubItem<UI_ItemSlot>(playerinventoryPanel.transform);
ItemSlot.SetIndex(i, playerInventory, ui_DragSlot);
if (playerInventory[i] != null)
{
ItemSlot.SetItemInfo(playerInventory[i]);
}
}
//사용 불가 이벤토리(확장필요)
for (int i = 11; i < 31; i++)
{
UI_ItemSlot ItemSlot = Managers.UI.MakeSubItem<UI_ItemSlot>(playerinventoryPanel.transform);
ItemSlot.SetIndex(i, playerInventory, ui_DragSlot, false);
}
}
public void SetIndex(int _index, GameObject[] _slotsData = null , UI_DragSlot _instance = null, bool _isAvailable = true)
{
index = _index;
instance = _instance;
isAvailable = _isAvailable;
slotsData = _slotsData;
}
slotsData.ArraySwap(instance.itemSlot.slotsData, index, instance.itemSlot.index);
public static void ArraySwap<T>(this T[] Fromarray, T[] Toarray, int from, int to)
{
T tmp = Fromarray[from];
Fromarray[from] = Toarray[to];
Toarray[to] = tmp;
}
오랜만에 TIL작성, 생각보다 작업하면서 할것도 많아서 쓸 시간이 부족했다. 그래도 간간히 이런식으로 만드는것 써서 정리 잘 해야겠다.
최근 기술면접 대비도 하고있는데 생각보다 뿌듯 하다.
기술면접 쓰면서 확실히 개발관련 지식이 많이 늘은것을 느꼈다. 이런저런 상속, 추상부터 제네릭메소드 확장메소드 까지 이제 코드를 잘 읽고 이해할 수 있어서 캠프를 시작했었을때 보다 더 성장했다는 것을 느꼈다.
다만 아직 걱정인것이 디자인패턴이 조금 부족한느낌? 지금은 그냥 주먹구구식으로 관리하고 있는것같긴하다 코드들 리팩토링도 꾸준히 할 필요가 있고 디자인패턴을 잘 적응할 수 있으면 더 좋은 개발자가 될것 같다. 남은 기간동안 꾸준히 디자인 패턴들 잘 공부해 봐야겠다.