/// <summary> /// Handle these events. /// -> OnMouseUp /// -> OnMouseOver /// </summary> private void Handle_UpOver() { JCS_InputManager im = JCS_InputManager.instance; JCS_SlideInput slideInput = im.GetGlobalSlideInput(); foreach (RaycastHit hit in mHits) { if (hit.transform == null) { continue; } GameObject obj = hit.transform.gameObject; if (im.Support_OnMouseOver) { _SendMessage(obj, "OnMouseOver"); } if (im.Support_OnMouseUp) { if (mTouchedLastFrame && !slideInput.Touched) { _SendMessage(obj, "OnMouseUp"); } } PrintName(hit.transform); } }
/// <summary> /// Handle these events. /// -> OnMouseEnter /// -> OnMouseExit /// </summary> private void Handle_EnterExit() { JCS_InputManager im = JCS_InputManager.instance; // A ray is an infinite line starting at an origin and going into a direction // For this we will use our mouse position Ray ray = mCamera.ScreenPointToRay(Input.mousePosition); RaycastHit[] hits = Physics.RaycastAll(ray, mRaycastDistance); foreach (RaycastHit hit in hits) { if (hit.transform == null) { continue; } GameObject obj = hit.transform.gameObject; if (mHits.Contains(hit)) { continue; } if (im.Support_OnMouseEnter) { _SendMessage(obj, "OnMouseEnter"); } } foreach (RaycastHit hit in mHits) { if (hit.transform == null) { continue; } GameObject obj = hit.transform.gameObject; if (hits.Contains(hit)) { continue; } if (im.Support_OnMouseExit) { _SendMessage(obj, "OnMouseExit"); } PrintName(hit.transform); } mHits = hits; }
/// <summary> /// Handle these events. /// -> OnMouseDown /// -> OnMouseDrag /// </summary> private void Handle_DownDrag() { JCS_InputManager im = JCS_InputManager.instance; JCS_SlideInput slideInput = im.GetGlobalSlideInput(); if (!slideInput.Touched) { this.mTouchedLastFrame = false; return; } // A ray is an infinite line starting at an origin and going into a direction // For this we will use our mouse position Ray ray = mCamera.ScreenPointToRay(Input.mousePosition); mHits = Physics.RaycastAll(ray, mRaycastDistance); foreach (RaycastHit hit in mHits) { if (hit.transform == null) { continue; } GameObject obj = hit.transform.gameObject; if (slideInput.Touched) { if (im.Support_OnMouseDown) { if (!mTouchedLastFrame) { _SendMessage(obj, "OnMouseDown"); } } if (im.Support_OnMouseDrag) { if (slideInput.DeltaPos != Vector2.zero) { _SendMessage(obj, "OnMouseDrag"); } } } PrintName(hit.transform); } this.mTouchedLastFrame = true; }
//======================================== // Unity's function //------------------------------ private void Awake() { instance = this; }