private RectTransform CreateItemUI(IMiniMapItem item) { var rect = Instantiate(ItemUIPrefab, container); var image = rect.GetComponent <Image>(); image.sprite = item.Icon; image.color = item.IconColor; return(rect); }
private void Remove(IMiniMapItem item) { var index = items.FindIndex(x => x.item == item); if (items[index].relativeUIItem && items[index].relativeUIItem.gameObject) { Destroy(items[index].relativeUIItem.gameObject); } items.RemoveAt(index); }
void AddItem(IMiniMapItem item) { if (items.Exists(x => x.item == item)) { return; } items.Add(new ItemData() { item = item, relativeUIItem = CreateItemUI(item) }); }
public static void Unsubscribe(IMiniMapItem item) { instance?.Remove(item); }
public static void Subscribe(IMiniMapItem item) { instance?.AddItem(item); }