public void CheckHoveringOnBox() { MouseDetector detector = new MouseDetector(); int findChecker = 0; foreach (GameObject box in itemBoxList) { // 타겟 설정. detector.TargetChange(box.transform); // 현재 마우스가 타겟 위에 있는지 확인. 있다면 현재 커서 위치에 툴팁 생성 if (detector.Trigger()) { showTooltip(detector.GetMousePos(), itemBoxCodenameList[findChecker]); break; } else { findChecker += 1; } } if (findChecker == itemBoxList.Count) { closeTooltip(); } }
public WatcherService(ref IStorage store) { this.store = store ?? throw new ArgumentNullException(nameof(store)); keyboard = new KeyboardHook(KeyboardHook.Parameters.PassAllKeysToNextApp); keyboard.KeyIntercepted += Keyboard_KeyIntercepted; mouse = new MouseDetector(store.GetCurrentResolution(), store.GetDataPrecision()); mouse.MouseMoved += Mouse_MouseMoved; }
private void FormMain_Load(object sender, EventArgs e) { tabSaveManager.VisibleChanged += (o, args) => { if (tabSaveManager.Visible) { SmBecameVisible(); } }; _mouseDetector = new MouseDetector(); }
private void Awake() { if (instance == null) { instance = this; } else { Debug.LogWarning("Instance already exists", this); Destroy(this.gameObject); } }
public void CheckShowTooltip() { MouseDetector detector = new MouseDetector(); // 현재 커서가 상단 패널에 있는지 하단 패널에 있는지 확인. int mode = -1; detector.TargetChange(viewPanel.transform); if (detector.Trigger()) { mode = 0; } detector.TargetChange(selectedViewPanel.transform); if (detector.Trigger()) { mode = 1; } if (mode == -1) { CloseTooltip(); return; } // mode 가 -1인 경우 엉뚱한 곳이 클릭되었다는 뜻이므로 탈출. if (mode == 0) { // 상단 패널 안인 경우. for (int i = 0; i < shopItemList.Count; i++) { detector.TargetChange(itemViewList[i].transform); if (detector.Trigger()) { if (shopItemList[i].count != 0) { showTooltip(detector.GetMousePos(), shopItemList[i].itemCode); } return; } } } if (mode == 1) { // 하단 패널 안인 경우. for (int i = 0; i < tradeDataList.Count; i++) { detector.TargetChange(selectedViewList[i].transform); if (detector.Trigger()) { showTooltip(detector.GetMousePos(), tradeDataList[i].itemCode); return; } } } }
// 좌표를 입력받아 그것에 해당하는 아이템이 무엇인지 확인하고 아래 목록으로 이동. // 만약 대상이 하단 패널이면 오히려 위로 올림. public void SelectItem() { MouseDetector detector = new MouseDetector(); // 현재 커서가 상단 패널에 있는지 하단 패널에 있는지 확인. int mode = -1; detector.TargetChange(viewPanel.transform); if (detector.Trigger()) { mode = 0; } detector.TargetChange(selectedViewPanel.transform); if (detector.Trigger()) { mode = 1; } if (mode == -1) { return; } // mode 가 -1인 경우 엉뚱한 곳이 클릭되었다는 뜻이므로 탈출. if (mode == 0) { // 상단 패널 안인 경우. Debug.Log($"ShopUI/Trade/SelectItem.notice : is done double click."); for (int i = 0; i < shopItemList.Count; i++) { detector.TargetChange(itemViewList[i].transform); if (detector.Trigger()) { if (shopItemList[i].count != 0) { ModifyItem(shopItemList[i].itemCode); } return; } } } if (mode == 1) { // 하단 패널 안인 경우. for (int i = 0; i < tradeDataList.Count; i++) { detector.TargetChange(selectedViewList[i].transform); if (detector.Trigger()) { ModifyItem(tradeDataList[i].itemCode, -1); return; } } } }
public void OnRightClick(Message message) { MouseDetector detector = new MouseDetector(); Vector2 pos = detector.GetMousePos(); if (mode == 0) { buyTrade.CheckShowTooltip(); } else if (mode == 1) { sellTrade.CheckShowTooltip(); } Sync(); }
public void CheckHoveringOnBox() { MouseDetector detector = new MouseDetector(); // 클릭 확인. for (int i = 0; i < INVENTORY_CAPACITY; i++) { GameObject box; string itemCode; // mode 에 따라 box 할당. if (mode == 0 && equipmentInventories[i].isSetItem == true) { box = equipmentInventories[i].box; itemCode = equipmentInventories[i].itemCode; } else if (mode == 1 && comsumableInventories[i].isSetItem == true) { box = comsumableInventories[i].box; itemCode = comsumableInventories[i].itemCode; } else if (mode == 2 && etcInventories[i].isSetItem == true) { box = etcInventories[i].box; itemCode = etcInventories[i].itemCode; } else { continue; } // 타겟 설정. detector.TargetChange(box.transform); // 현재 마우스가 타겟 위에 있는지 확인. 있다면 현재 커서 위치에 툴팁 생성 if (detector.Trigger()) { showTooltip(detector.GetMousePos(), itemCode); return; } } // 일치하는 케이스가 없다면 툴팁 닫기. CloseTooltip(); }
public void OnLeftDoubleClick(Message message) { MouseDetector detector = new MouseDetector(); Vector2 nowPos = detector.GetMousePos(); if (posBuffer == nowPos) { if (mode == 0) { buyTrade.SelectItem(); } else if (mode == 1) { sellTrade.SelectItem(); } } else { posBuffer = nowPos; } Sync(); }
void Start() { detector = MouseDetector.instance; transform.position = detector.mousePosition; }