//아이템 교환 (아이템 <-> 아이템) //#### 이거 잘 되는지 봐야됨 어렵다 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); }
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); } } } }