void DoCheckPointer() { bool isOver = false; if (pointerId.IsNone) { isOver = EventSystem.current.IsPointerOverGameObject(); } else { if (EventSystem.current.currentInputModule is PointerInputModule) { PointerInputModule _module = EventSystem.current.currentInputModule as PointerInputModule; isOver = _module.IsPointerOverGameObject(pointerId.Value); } } isPointerOverUI.Value = isOver; if (isOver) { Fsm.Event(pointerOverUI); } else { Fsm.Event(pointerNotOverUI); } }
protected override PointerInputModule.MouseState GetMousePointerEventData(int id) { PointerEventData pointerEventData; var pointerData = GetPointerData(-1, out pointerEventData, true); pointerEventData.Reset(); if (pointerData) { pointerEventData.position = Input.mousePosition; } Vector2 vector = Input.mousePosition; if (Cursor.lockState == CursorLockMode.Locked) { pointerEventData.position = -Vector2.one; pointerEventData.delta = Vector2.zero; } else { pointerEventData.delta = vector - pointerEventData.position; pointerEventData.position = vector; } pointerEventData.scrollDelta = Input.mouseScrollDelta; pointerEventData.button = PointerEventData.InputButton.Left; base.eventSystem.RaycastAll(pointerEventData, m_RaycastResultCache); RaycastResult pointerCurrentRaycast = BaseInputModule.FindFirstRaycast(m_RaycastResultCache); pointerEventData.pointerCurrentRaycast = pointerCurrentRaycast; m_RaycastResultCache.Clear(); _mouseState.SetButtonState(PointerEventData.InputButton.Left, PointerInputModule.StateForMouseButton(0), pointerEventData); if (_useRightMouseButton) { PointerEventData pointerEventData2; GetPointerData(-2, out pointerEventData2, true); CopyFromTo(pointerEventData, pointerEventData2); pointerEventData2.button = PointerEventData.InputButton.Right; _mouseState.SetButtonState(PointerEventData.InputButton.Right, PointerInputModule.StateForMouseButton(1), pointerEventData2); } if (_useMiddleMouseButton) { PointerEventData pointerEventData3; GetPointerData(-3, out pointerEventData3, true); CopyFromTo(pointerEventData, pointerEventData3); pointerEventData3.button = PointerEventData.InputButton.Middle; _mouseState.SetButtonState(PointerEventData.InputButton.Middle, PointerInputModule.StateForMouseButton(2), pointerEventData3); } return(_mouseState); }
void UpdateState(bool enabled) { // First re-enable all systems for (int i = 0; i < disabled.Count; i++) { if (disabled[i]) { disabled[i].enabled = true; } } disabled.Clear(); EventSystem es = EventSystem.current; if (es == null) { return; } es.sendNavigationEvents = enabled; if (!enabled) { // Find all PointerInputModules and disable them PointerInputModule[] pointerInput = es.GetComponents <PointerInputModule>(); if (pointerInput != null) { for (int i = 0; i < pointerInput.Length; i++) { PointerInputModule pim = pointerInput[i]; if (pim.enabled) { pim.enabled = false; // Keep a list of disabled ones disabled.Add(pim); } } } // Cause EventSystem to update it's list of modules es.enabled = false; es.enabled = true; } }
public static int IsPointerOverGameObject(IntPtr l) { int result; try { PointerInputModule pointerInputModule = (PointerInputModule)LuaObject.checkSelf(l); int pointerId; LuaObject.checkType(l, 2, out pointerId); bool b = pointerInputModule.IsPointerOverGameObject(pointerId); LuaObject.pushValue(l, true); LuaObject.pushValue(l, b); result = 2; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
public static ReadOnlyPointerInputModule AsReadOnly(this PointerInputModule self) => self.IsTrulyNull() ? null : new ReadOnlyPointerInputModule(self);