Ejemplo n.º 1
0
        //아이템 교환 (아이템 <-> 아이템)      //#### 이거 잘 되는지 봐야됨 어렵다
        public void Switch(SlotItem selectedItem, SlotItem targetItem)
        {
            // 스위칭할때 변경사항
            // 1. 내용물(아이템정보) 변경
            // 2. 인덱스 위치 변경
            // 3. Tab 위치 변경

            int originIndex = selectedItem.Index;
            int targetIndex = targetItem.Index;

            // 1. 아이템 정보 스위치 ( Itemtable 변경 )
            // 인덱서 사용 public SlotItem this[int itemIndex]
            selectedItem.Tab[originIndex] = targetItem;
            targetItem.Tab[targetIndex]   = selectedItem;

            // 2. 인덱스 위치 스위치
            selectedItem.Index = targetIndex;
            targetItem.Index   = originIndex;

            // 3. Tab 위치 변경
            InventoryTab originTab = selectedItem.Tab;
            InventoryTab targetTab = targetItem.Tab;

            targetItem.Tab   = originTab;
            selectedItem.Tab = targetTab;

            OnItemSwitched?.Invoke(selectedItem, targetItem);
        }
Ejemplo n.º 2
0
        public void OnItemSelected(bool b)
        {
            var g = EventSystem.current.currentSelectedGameObject;

            foreach (var t in ItemToggles)
            {
                if (t.Value.gameObject != g)
                {
                    t.Value.SetIsOnWithoutNotify(false);
                }
                else
                {
                    selected       = t.Key;
                    selectedToggle = t.Value;
                    t.Value.SetIsOnWithoutNotify(true);
                    if (OnItemSwitched != null && Time.unscaledTime - lastInvoke > 0.05f)
                    {
                        lastInvoke = Time.unscaledTime;
                        OnItemSwitched.Invoke(t.Key);
                    }
                }
            }
        }