void GetTouchHit(Vector3 _mousePos) { mCurFrameIsHitUI = NguiEx.IsHitUI(m_IgnoreNgui, m_IgnoreNguiColliderList); if (!mCurFrameIsHitUI) { mRay = m_Camera.ScreenPointToRay(_mousePos); if (Physics.Raycast(mRay, out mHit, Mathf.Infinity, m_LayerMask)) { mTouchCurHitListener = mHit.collider.gameObject.GetComponent <InputExListener>(); if (mTouchCurHitListener != null) { isHit = true; } else { isHit = false; } } else { isHit = false; } } else { isHit = false; } }
void GetMouseHit(Vector3 _mousePos) { mMouseCurMousePos = _mousePos; if (m_MouseHoverEnableOnlyMove ? (mMouseCurMousePos != mMouseOldMousePos) : true) { mCurFrameIsHitUI = NguiEx.IsHitUI(m_IgnoreNgui, m_IgnoreNguiColliderList); if (!mCurFrameIsHitUI) { mRay = m_Camera.ScreenPointToRay(mMouseCurMousePos); if (Physics.Raycast(mRay, out mHit, Mathf.Infinity, m_LayerMask)) { mMouseCurHitListener = mHit.collider.gameObject.GetComponent <InputExListener>(); if (mMouseCurHitListener != null) { isHit = true; } else { isHit = false; } } else { isHit = false; } } else { isHit = false; } if (m_MouseHoverEnableOnlyMove) { mMouseOldMousePos = mMouseCurMousePos; } } }
void Update() { mCurFrameIsHitUI = NguiEx.IsHitUI(m_IgnoreNgui, m_IgnoreNguiColliderList); #region Mouse Control #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)) { mMouseDownIsHitUI = mCurFrameIsHitUI; } if (!mMouseDownIsHitUI) { if (Input.GetMouseButton(1) && !Input.GetMouseButton(0) && !Input.GetMouseButton(2)) { MouseRotateCamera(); } else if (m_IsEnableMove && Input.GetMouseButton(2) && !Input.GetMouseButton(0)) { MouseMoveCamera(); } } if (m_IsEnableZoom && !mCurFrameIsHitUI) { MousePushPullCamera(); } #endif #endregion #region Touch Control #if !UNITY_EDITOR && UNITY_ANDROID || UNITY_IPHONE if (Input.GetTouch(0).phase == TouchPhase.Began) { mTouchBeganIsHitUI = mCurFrameIsHitUI; } if (!mTouchBeganIsHitUI) { if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved && mTouchMoveDelayTime >= m_Touch_MoveDelayTime) { TouchRotateCamera(); } else if (m_IsEnableZoom && Input.touchCount == 2) { mTouchMoveDelayTime = 0f; TouchPushPullCamera(); } else if (m_IsEnableMove && Input.touchCount >= 3) { mTouchMoveDelayTime = 0f; TouchMoveCamera(); } } if (mTouchMoveDelayTime < m_Touch_MoveDelayTime) { mTouchMoveDelayTime += Time.deltaTime; } #endif #endregion }