예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
        /// <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;
        }
예제 #4
0
 //========================================
 //      Unity's function
 //------------------------------
 private void Awake()
 {
     instance = this;
 }