public void OnClickMySelf() { if (id == 2) { if (mTipsText == null) { mTips.SetActive(false); UI_StageInfo._instance.Tips.SetActive(false); } else { mTips.SetActive(true); UI_StageInfo._instance.Tips.SetActive(true); UI_StageInfo._instance.TipsDes.text = GameUtils.getString(mTipsText); } } else { switch (typeNum) { //符文 case 1: ItemTemplate rune = (ItemTemplate)DataTemplate.GetInstance().m_ItemTable.getTableData(id); UI_RuneInfo.SetShowRuneDate(rune); UI_HomeControler.Inst.AddUI("UI_Rune/UI_RuneInfo_1_3"); break; //道具 case 2: ItemTemplate item = (ItemTemplate)DataTemplate.GetInstance().m_ItemTable.getTableData(id); UI_Item.SetItemTemplate(item); UI_HomeControler.Inst.AddUI("UI_Home/UI_Item_1_3"); break; //英雄 case 3: UI_HomeControler.Inst.AddUI("UI_Home/UI_HeroInfoPop_1_3"); ObjectCard obj = new ObjectCard(); Hero hero = new Hero(); HeroTemplate _hero = (HeroTemplate)DataTemplate.GetInstance().m_HeroTable.getTableData(id); hero.skill1 = _hero.getSkill1ID(); hero.skill2 = _hero.getSkill2ID(); hero.skill3 = _hero.getSkill3ID(); hero.heroid = id; hero.herolevel = 1; hero.heroviewid = _hero.getArtresources(); obj.GetHeroData().Init(hero); //Destroy(UI_SelectFightArea.Inst.Card3Dmodel); HeroInfoPop.inst.Show3DModel(obj); HeroInfoPop.inst.ShowInfo(obj); break; default: break; } } }
public bool RemoveItem(UI_Item Item) { return(false); /*bool Valid = false; * UI_Slot Slot; * for (int y = 0; y < GridCells.GetLength (1); y++) * { * for(int x = 0; x < GridCells.GetLength(0); x++) * { * Slot = GridCells [x, y].GetComponent<UI_Slot> (); * if(GridCellData [GridCells [x, y].GetInstanceID ()] == Item.Id) * { * GridCellData [GridCells [x, y].GetInstanceID ()] = 0; * Slot.SetVisibility (Visiblility.Visible); * } * * if(Slot.GetIcon() == Item.Icon) * { * GridCellData [GridCells [x, y].GetInstanceID ()] = 0; * Slot.AdjustSize = true; * Slot.SetIcon (null); * Slot.SetScale (new Vector2 (1, 1)); * Valid = true; * } * } * } * * return Valid;*/ }
/// <summary> /// 根据id展示不同的物品展示界面; /// </summary> /// <param name="tableID"></param> public static bool ShowItemPreviewUIHandler(int tableID) { EM_OBJECT_CLASS eoc = GameUtils.GetObjectClassById(tableID); switch (eoc) { case EM_OBJECT_CLASS.EM_OBJECT_CLASS_RUNE: ItemTemplate runeItemT = DataTemplate.GetInstance().GetItemTemplateById(tableID); if (runeItemT == null) { LogManager.LogError("item表格中缺少物品id=" + tableID); return(false); } UI_RuneInfo.SetShowRuneDate(runeItemT); UI_HomeControler.Inst.AddUI(UI_RuneInfo.UI_ResPath); return(true); case EM_OBJECT_CLASS.EM_OBJECT_CLASS_COMMON: ItemTemplate itemT = DataTemplate.GetInstance().GetItemTemplateById(tableID); if (itemT == null) { LogManager.LogError("item表格中缺少物品id=" + tableID); return(false); } UI_Item.SetItemTemplate(itemT); UI_HomeControler.Inst.AddUI(UI_Item.UI_ResPath); return(true); case EM_OBJECT_CLASS.EM_OBJECT_CLASS_SKIN: ArtresourceTemplate artT = DataTemplate.GetInstance().GetArtResourceTemplate(tableID); if (artT == null) { LogManager.LogError("ArtResource时装表格中缺少物品id=" + tableID); return(false); } UI_SkinPreviewMgr.SetShowArtTemplate(artT); UI_HomeControler.Inst.AddUI(UI_SkinPreviewMgr.UI_ResPath); return(true); case EM_OBJECT_CLASS.EM_OBJECT_CLASS_HERO: HeroTemplate heroT = DataTemplate.GetInstance().GetHeroTemplateById(tableID); if (heroT == null) { LogManager.LogError("hero表格中缺少物品id=" + tableID); return(false); } UI_HomeControler.Inst.AddUI(HeroInfoPop.UI_ResPath); HeroInfoPop.inst.SetShowData(heroT); return(true); case EM_OBJECT_CLASS.EM_OBJECT_CLASS_RES: //资源类型点击无响应; return(true); default: LogManager.LogError("未处理的商城物品预览类型"); return(false); } }
private void UpdateVisual() { foreach (Transform child in itemContainer) { Destroy(child.gameObject); } Item weaponItem = characterEquipment.GetWeaponItem(); if (weaponItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = weaponSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(weaponItem); weaponSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { weaponSlot.transform.Find("emptyImage").gameObject.SetActive(true); } Item armorItem = characterEquipment.GetArmorItem(); if (armorItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = armorSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(armorItem); armorSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { armorSlot.transform.Find("emptyImage").gameObject.SetActive(true); } Item helmetItem = characterEquipment.GetHelmetItem(); if (helmetItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = helmetSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(helmetItem); helmetSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { helmetSlot.transform.Find("emptyImage").gameObject.SetActive(true); } }
public override void OnDrop(GameObject Slot) { if (Visible == Visiblility.Hidden) { return; } UI_InventorySlot InventoryComponent = Slot.GetComponent <UI_InventorySlot> (); if (Inventory && InventoryComponent) { UI_Item Item = (Remove == RemoveType.RemoveOnDrag) ? TempDrag : this.Item; Vector2Int NewPosition = ParentInventory.AddItem(Item, InventoryComponent.Position); if (NewPosition != UI_Inventory.InvalidIndex) { if (Remove == RemoveType.RemoveOnDrop && RemoveEvent) { ParentInventory.RemoveItem(Position); } } else { if (Remove == RemoveType.RemoveOnDrag) { ParentInventory.AddItem(Item, Position); } } } UI_EquipSlot EquipComponent = Slot.GetComponent <UI_EquipSlot>(); if (EquipComponent && EquipComponent.Inventory) { UI_Item Item = (Remove == RemoveType.RemoveOnDrag) ? TempDrag : this.Item; Vector2Int NewId = EquipComponent.Inventory.AddItem(Item, Slot); if (NewId != UI_Inventory.InvalidIndex) { if (Remove == RemoveType.RemoveOnDrop && RemoveEvent) { ParentInventory.RemoveItem(Position); } } else { if (Remove == RemoveType.RemoveOnDrag) { ParentInventory.AddItem(Item, Position); } } print("Cast To Equip slot"); } }
//Publicas: public bool ValidateItemFormat(UI_Item Item) { bool Validate = true; Validate &= Item.Size.x > 0; Validate &= Item.Size.y > 0; Validate &= Item.Icon != null; Validate &= Item.Id > int.MinValue; Validate &= Item.Id <= int.MaxValue; DebugLog("Item " + Validate + " Format."); return(Validate); }
// Use this for initialization void Start() { healthBar = transform.Find("HealthPanel/HealthBarBack/HealthBar").GetComponent <RectTransform>(); healthText = transform.Find("HealthPanel/HealthBarBack/HealthText").GetComponent <Text>(); scrapCount = transform.Find("HealthPanel/MaterialsPanel/ScrapCount").GetComponent <Text>(); energyCount = transform.Find("HealthPanel/MaterialsPanel/EnergyCount").GetComponent <Text>(); wireCount = transform.Find("HealthPanel/MaterialsPanel/WireCount").GetComponent <Text>(); itemsPanel = transform.Find("Items").GetComponent <RectTransform>(); scoreText = transform.Find("ScorePanel/Score").GetComponent <Text> (); ammoCount = transform.Find("AmmoCount/AmmoText").GetComponent <Text> (); reloadMask = transform.Find("AmmoCount/ReloadMask").GetComponent <RectTransform> (); craftingMenu = transform.Find("CraftingManager").GetComponent <AssemblyCSharp.CraftingManager> (); craftingMenuOpen = false; alertDisplay = transform.Find("AlertDisplay").GetComponent <AlertPanel>(); isReloading = false; reloadMaskHeight = reloadMask.rect.height; // Find the references for each inventory item panel Transform hotbarParent = transform.Find("Items/Hotbar"); Transform inventoryParent = transform.Find("Items/Inventory"); inventoryItems = new Transform[hotbarParent.childCount + inventoryParent.childCount]; for (int i = 0; i < inventoryItems.Length; i++) { if (i < hotbarParent.childCount) { inventoryItems [i] = hotbarParent.GetChild(i); } else { inventoryItems [i] = inventoryParent.GetChild(i - 6); } UI_Item selectable = inventoryItems [i].GetComponentInChildren <UI_Item>(); selectable.parent = this; selectable.index = i; } tooltipPanel = transform.Find("ItemTooltip").GetComponent <RectTransform>(); tooltip = tooltipPanel.GetComponent <UI_Tooltip> (); tooltipPanel.gameObject.SetActive(false); GameObject playerObj = GameObject.Find("Player"); player = playerObj.GetComponent <PlayerManager>(); playerUse = playerObj.GetComponent <PlayerUse> (); inventory = playerObj.GetComponent <Inventory> (); inventoryOpen = false; inventorySelectedIndex = -1; }
private void Selector_OnSelect(object sender, EventArgs e) { Selector.OnSelectEventArgs onSelectEventArgs = e as Selector.OnSelectEventArgs; UI_Item uI_Item = onSelectEventArgs.selectableObject as UI_Item; if (null != uI_Item) { selectedItemIndex = uI_Item.GetIndex(); } Debug.Log("inventory selectedItemIndex: " + selectedItemIndex); }
public void OnDrop(PointerEventData eventData) { RaycastResult raycastResult = eventData.pointerCurrentRaycast; if (null != raycastResult.gameObject) { UI_Item uI_Item = raycastResult.gameObject.GetComponent <UI_Item>(); if (null != uI_Item) { //custumer sell function call } } }
public void OnPointerExit(PointerEventData eventData) { if (true == Util.IsMultiTouch(eventData)) { return; } if (null != eventData.pointerDrag) { UI_Item uI_Item = eventData.pointerDrag.GetComponent <UI_Item>(); if (null != uI_Item) { uI_Inventory.LightOffUI_InventorySlot(); } } }
//modify this function with the code you want to be executed when you activate an item public void ActivateItem(int id, string category, int source = -1) { UI_Item currentItem = GetComponent <UI_ItemsList>().allItems[id].GetComponent <UI_Item>(); //use this to access the activated item //Code for activating blueprint, modify with caution if (currentItem.isBlueprint == true) // the item will unlock a blueprint { currentItem.blueprintUnlock.SetActive(true); } //End of code //Add your code here }
public override void InitUIData() { base.InitUIData(); _instance = this; mCloseBtn.onClick.AddListener(new UnityEngine.Events.UnityAction(OnCloseBtn)); if (UI_SacredAltar._instance != null) { titleName.text = GameUtils.getString("clone_window1"); } else { titleName.text = GameUtils.getString("item_info_form_title"); } UpdateShow(); }
void Awake() { ItemInterface = new UI_Item(Id, Icon, Size); State = 0; //Aca empieza el hardcodeo Button BT = GetComponentInChildren <Button>(); BT.onClick.AddListener(PickUp); Text Txt = GetComponentInChildren <Text>(); Txt.text = Name; InteractableObject = transform.Find("Interactable").gameObject; InteractableObject.transform.localPosition = InteractableObject.transform.localPosition + InteractableOffset; }
public void OnPointerEnter(PointerEventData eventData) { if (true == Util.IsMultiTouch(eventData)) { return; } if (null != eventData.pointerDrag) { UI_Item uI_Item = eventData.pointerDrag.GetComponent <UI_Item>(); if (null != uI_Item) { uI_Inventory.GetUISelectionFrame().ShowGlowingFrame(transform); } } }
private UI_Item CreateUI_Item(int index) { UI_InventorySlot uI_InventorySlot = uI_InventorySlotList[index]; Transform uI_ItemTransform = Instantiate(uI_ItemTemplate, uI_InventorySlot.transform); uI_ItemTransform.GetComponent <RectTransform>().anchoredPosition = Vector2.zero; uI_ItemTransform.gameObject.SetActive(true); UI_Item uI_Item = uI_ItemTransform.GetComponent <UI_Item>(); uI_Item.SetIndex(index); uI_Item.SetItem(inventory.GetItem(index)); uI_Item.UpdateUI(); return(uI_Item); }
//Operations: public override void OnBeginDrag(PointerEventData Data) { base.OnBeginDrag(Data); UI_Drag DragObject = DragComponent.GetComponent <UI_Drag>(); if (DragObject && Item != UI_Item.invalid) { DragObject.DragSize = Item.Size; } if (Inventory && Remove == RemoveType.RemoveOnDrag && RemoveEvent) { TempDrag = Item; ParentInventory.RemoveItem(Position); } }
public override void OnBeginDrag(PointerEventData Data) { base.OnBeginDrag(Data); UI_Drag DragObject = DragComponent.GetComponent <UI_Drag>(); if (DragObject && Item != UI_Item.invalid) { DragObject.DragSize = Item.Size; } if (Remove == UI_InventorySlot.RemoveType.RemoveOnDrag && Inventory) { TempDrag = Item; Inventory.RemoveItem(gameObject); } }
public void OnDrop(PointerEventData eventData) { if (true == Util.IsMultiTouch(eventData)) { return; } if (null != eventData.pointerDrag) { UI_Item uI_Item = eventData.pointerDrag.GetComponent <UI_Item>(); if (null != uI_Item) { uI_Inventory.Swap(index, uI_Item.GetIndex()); uI_Inventory.GetUISelectionFrame().ShowGlowingFrame(transform); Selector.GetInstance().OnSelectInvoke(this); } } }
public void OnDrop(PointerEventData eventData) { if (true == Util.IsMultiTouch(eventData)) { return; } if (null != eventData.pointerDrag) { UI_Item uI_Item = eventData.pointerDrag.gameObject.GetComponent<UI_Item>(); if(null != uI_Item) { uI_Inventory.Swap(index, uI_Item.GetIndex()); UI_Item renewedUI_Item = transform.GetChild(0).GetComponent<UI_Item>(); Selector.GetInstance().OnSelectInvoke(renewedUI_Item); uI_SelectionMark.ShowGlowingFrame(transform); } } }
protected void Update() { //HighLightUpdate(); if (Input.GetKeyDown(KeyCode.C)) { Temp = new UI_Item(DebugId, DebugIcon, DebugSize); AddItem(Temp, DebugPos); } if (Input.GetKeyDown(KeyCode.Alpha2)) { //GetDataMap (); } if (Input.GetKeyDown(KeyCode.Alpha3)) { print(RemoveItem(DebugPos)); } }
public void AddItem(int id) { Item itemtoAdd = database.GetItemByID(id); if (itemtoAdd.Stackable && CheckifItemisInInventory(itemtoAdd)) { for (int i = 0; i < inventory.Count; i++) { if (inventory[i].GetComponent <UI_Item>().item.ID == id) { UI_Item data = inventory[i].GetComponent <UI_Item>(); //UI_Item data = slots[i].transform.GetChild(0).GetComponent<UI_Item>(); data.amount++; data.transform.GetChild(0).GetComponent <Text>().text = data.amount.ToString(); break; } } } else { for (int i = 0; i < items.Count; i++) { if (items[i].ID == -1) { items[i] = itemtoAdd; GameObject itemObj = Instantiate(inventoryItem) as GameObject; inventory.Add(itemObj); itemObj.GetComponent <UI_Item>().item = itemtoAdd; itemObj.GetComponent <UI_Item>().slot = i; itemObj.GetComponent <UI_Item>().amount = 1; itemObj.transform.SetParent(slots[i].transform); itemObj.transform.position = Vector2.zero; itemObj.GetComponent <Image>().sprite = itemtoAdd.sprite; itemObj.name = itemtoAdd.name; break; } } } }
// 아이템 생성하기 public void CreateItem(ViewItem _item) { var item = Instantiate(itemPrototype); item.position = itemPrototype.position; item.GetComponent <RectTransform>().sizeDelta = new Vector2(30 * _item.sizeX, 30 * _item.sizeY); item.GetComponent <Image>().sprite = _item.sprite.sprite; UI_Item itemScript = item.GetComponent <UI_Item>(); itemScript.itemInfo = new Item(); itemScript.SIZE = new ItemSize(); itemScript.itemInfo.name = _item.t_name.text; itemScript.itemInfo.type = (ITEM_TYPE)Enum.Parse(typeof(ITEM_TYPE), _item.t_type.text); itemScript.SIZE.X = _item.sizeX; itemScript.SIZE.Y = _item.sizeY; // 아이템 코드 랜덤 생성 string _code; while (true) { _code = UnityEngine.Random.Range(0, 1000).ToString(); // 이미 있는 코드인지 확인, 코드 겹치지 않도록 if (!CreatedItemsDictionary.ContainsKey(_code)) { break; } } itemScript.itemInfo.code = _code; string key = itemScript.itemInfo.code; Transform value = item; // 딕셔너리에 아이템 추가 CreatedItemsDictionary.Add(key, value); item.gameObject.SetActive(true); EventHandler.instance.SetSelectedItem(item); }
public Vector2Int AddItem(UI_Item NewItem, GameObject Slot) { if (!ValidateItemFormat(NewItem)) { return(InvalidIndex); } Vector2Int Index = InvalidIndex; UI_EquipSlot SlotComponent = Slot.GetComponent <UI_EquipSlot>(); if (SlotComponent) { DebugLog("Item added to Equipament Slot: [" + SlotComponent.Id + "]"); SlotComponent.SetVisibility(Visiblility.Visible); SlotComponent.SetIcon(NewItem.Icon); SlotComponent.SetScale(NewItem.Size); SlotComponent.Item = NewItem; Index = new Vector2Int(SlotComponent.Id, SlotComponent.Id); } return(Index); }
public void UpdateUI_Item(int index) { if (null != inventory.GetItem(index)) { UI_Item uI_Item = uI_InventorySlotList[index].GetComponentInChildren <UI_Item>(); if (null != uI_Item) { uI_Item.UpdateItem(inventory.GetItem(index)); } else { CreateUI_Item(index).transform.SetAsFirstSibling(); } } else { UI_Item uI_Item = uI_InventorySlotList[index].GetComponentInChildren <UI_Item>(); if (null != uI_Item) { Destroy(uI_Item.gameObject); } } }
public override void OnDrop(GameObject Slot) { if (Visible == Visiblility.Hidden) { return; } UI_EquipSlot EquipComponent = Slot.GetComponent <UI_EquipSlot>(); if (EquipComponent && Inventory) { print("Drop Cast Equip"); } UI_InventorySlot InventoryComponent = Slot.GetComponent <UI_InventorySlot>(); if (InventoryComponent && Inventory) { UI_Item Item = (Remove == UI_InventorySlot.RemoveType.RemoveOnDrag) ? TempDrag : this.Item; Vector2Int Index = Inventory.AddItem(Item, InventoryComponent.Position); if (Index != UI_Inventory.InvalidIndex) { if (Remove == UI_InventorySlot.RemoveType.RemoveOnDrop) { Inventory.RemoveItem(gameObject); } } else { if (Remove == UI_InventorySlot.RemoveType.RemoveOnDrag) { Inventory.AddItem(Item, gameObject); } } } }
public virtual bool Equal(UI_Item other) { return(this.Id == other.Id && this.Size == other.Size && this.Icon == other.Icon); }
private void Awake() { myItem = GetComponent <UI_Item>(); }
// 인벤 그리드에서 아이템사이즈에 맞는 슬롯 좌표 구하기 public void GetItemSizeOnGrid(Vert v, Hor h, UI_Slot parentSlot) { // 아이템 드래그중 아니면 검사 안함 if (SelectedItem == null) { return; } UI_Item item = SelectedItem.GetComponent <UI_Item>(); // 아이템 사이즈 int x = item.SIZE.X; int y = item.SIZE.Y; // 왼쪽 상단, 오른쪽 하단 값 int maxX, minX; int maxY, minY; int upY, downY; int rightX, leftX; upY = downY = rightX = leftX = 0; // 짝수일때와 홀수일때 좌표 계산 // 짝 if (x % 2 == 0) { maxX = x / 2; minX = (x - 1) / 2; } // 홀 else { maxX = minX = x / 2; } // 짝 if (y % 2 == 0) { maxY = y / 2; minY = (y - 1) / 2; } // 홀 else { maxY = minY = y / 2; } // 4분면중 어느곳에 마우스 포인터가 위치하는지 switch (v) { case Vert.UP: upY = parentSlot.y - maxY; downY = parentSlot.y + minY; break; case Vert.DOWN: upY = parentSlot.y - minY; downY = parentSlot.y + maxY; break; } switch (h) { case Hor.RIGHT: leftX = parentSlot.x - minX; rightX = parentSlot.x + maxX; break; case Hor.LEFT: leftX = parentSlot.x - maxX; rightX = parentSlot.x + minX; break; } sc_InvGridManager.SetItemOnGrid(leftX, rightX, downY, upY); }
public void OnClickSelf() { switch (typeNum) { //符文 case 1: ItemTemplate rune = (ItemTemplate)DataTemplate.GetInstance().m_ItemTable.getTableData(id); UI_RuneInfo.SetShowRuneDate(rune); if (UI_HomeControler.Inst == null) { UI_FightControler.Inst.AddUI("UI_Rune/UI_RuneInfo_1_3"); } else { UI_HomeControler.Inst.AddUI("UI_Rune/UI_RuneInfo_1_3"); } break; //道具 case 2: ItemTemplate item = (ItemTemplate)DataTemplate.GetInstance().m_ItemTable.getTableData(id); UI_Item.SetItemTemplate(item); if (UI_HomeControler.Inst == null) { UI_FightControler.Inst.AddUI("UI_Home/UI_Item_1_3"); } else { UI_HomeControler.Inst.AddUI("UI_Home/UI_Item_1_3"); } break; //英雄 case 3: if (UI_HomeControler.Inst == null) { UI_FightControler.Inst.AddUI("UI_Home/UI_HeroInfoPop_1_3"); } else { UI_HomeControler.Inst.AddUI("UI_Home/UI_HeroInfoPop_1_3"); } //ObjectCard obj = new ObjectCard(); //Hero hero = new Hero(); HeroTemplate _hero = (HeroTemplate)DataTemplate.GetInstance().m_HeroTable.getTableData(id); //hero.skill1 = _hero.getSkill1ID(); //hero.skill2 = _hero.getSkill2ID(); //hero.skill3 = _hero.getSkill3ID(); //hero.heroid = id; //hero.herolevel = 1; //hero.heroviewid = _hero.getArtresources(); //obj.GetHeroData().Init(hero); //Destroy(UI_SelectFightArea.Inst.Card3Dmodel); HeroInfoPop.inst.SetShowData(_hero); break; default: break; } }
public Vector2Int AddItem(UI_Item NewItem, Vector2Int Position) { if (!ValidateItemFormat(NewItem)) { LastState = -1; return(UI_Inventory.InvalidIndex); } bool ValidIndex = false, ValidSlot = true; Vector2Int Index = UI_Inventory.InvalidIndex; int ItemWidth = Position.x + NewItem.Size.x; int ItemHeight = Position.y + NewItem.Size.y; ValidIndex = (Position.x >= 0 && Position.y >= 0) && (ItemWidth - 1 < Size.x) && (ItemHeight - 1 < Size.y); List <int> HierarchyIndex = new List <int> (); List <GameObject> DeactivatedSlots = new List <GameObject> (); bool PointerValid; UI_InventorySlot Slot; for (int y = Position.y; y < ItemHeight; y++) { for (int x = Position.x; x < ItemWidth; x++) { PointerValid = (x < GridCells.GetLength(0)) && (y < GridCells.GetLength(1)); if (PointerValid) { Slot = GridCells [x, y].GetComponent <UI_InventorySlot> (); if (Slot && Slot.Item == UI_Item.invalid) { ValidSlot &= true; Slot.SetVisibility(Visiblility.Hidden); Slot.Item = NewItem; DeactivatedSlots.Add(Slot.gameObject); HierarchyIndex.Add(Slot.transform.GetSiblingIndex()); } else { ValidSlot &= false; } } else { ValidSlot &= false; } } } if (ValidIndex && ValidSlot) { DebugLog("Item Added: to [" + Position.x + "-" + Position.y + "]"); Slot = GridCells[Position.x, Position.y].GetComponent <UI_InventorySlot>(); Slot.SetVisibility(Visiblility.Visible); Slot.SetScale(NewItem.Size);//Problema con la escala Slot.SetIcon(NewItem.Icon); Slot.Item = NewItem; if (UnSymGridPanelComponent) { DebugLog("Unsym Grid Panel Subsystem"); int MaxIndex = Mathf.Max(HierarchyIndex.ToArray()); Slot.transform.SetSiblingIndex(MaxIndex); HierarchyIndex.Clear(); LastState = 1; } if (GridPanelComponent) { DebugLog("Grid Panel Subsystem"); UI_InventorySlot DeactivatedSlot; for (int i = 0; i < DeactivatedSlots.Count; i++) { DeactivatedSlot = DeactivatedSlots[i].GetComponent <UI_InventorySlot>(); if (DeactivatedSlot && DeactivatedSlot.Position != Position) { DeactivatedSlot.RaycastMode = UI_Slot.RaycastFilter.Inactive; } } LastState = 1; DeactivatedSlots.Clear(); } Index = Position; } else { LastState = 0; DebugLog("Inventory space unavailable:"); DebugLog("Slots Deactivated: " + DeactivatedSlots.Count); DebugLog("Index: [" + ValidIndex + "]"); DebugLog("Slot: [" + ValidSlot + "]"); for (int i = 0; i < DeactivatedSlots.Count; i++) { Slot = DeactivatedSlots [i].GetComponent <UI_InventorySlot> (); if (Slot && Slot.Item == NewItem || Slot.Item == UI_Item.invalid) { Slot.SetVisibility(Visiblility.Visible); Slot.Item = new UI_Item(); Slot.SetIcon(null); Slot.SetScale(new Vector2(1, 1)); } } DeactivatedSlots.Clear(); } return(Index); }