Esempio n. 1
0
        /* un doigt passe par là et y a que moi en dessous */
        private void eventOnOverring(InputTouchFinger finger)
        {
            if (!reactToTouch())
            {
                return;
            }

            if (!_overring)
            {
                return;
            }

            if (finger.isCaptured() && dontReactToCapturedFinger)
            {
                return;
            }

            RaycastHit2D?hit = getLocalMatchingColliderWithFinger(finger);

            if (hit != null)
            {
                //Debug.Log("overring "+finger.touchedObjects[0].collider.gameObject.name+" , count = "+finger.touchedObjects.Count);
                onOverring(finger);
            }
        }
Esempio n. 2
0
        /* global touch event (everybody get this event) */
        private void eventOnTouch(InputTouchFinger finger)
        {
            if (!reactToTouch())
            {
                return;
            }

            if (dontReactToCapturedFinger)
            {
                if (!finger.isCapturedBy(this) && finger.isCaptured())
                {
                    //Debug.Log(name + " can't react to finger " + finger.fingerId + " because is captured by someone else : " + finger.captured, gameObject);
                    return;
                }
            }

            //Debug.Log(finger.fingerId + " on touch "+name);

            onTouch(finger);

            RaycastHit2D?hit = getLocalMatchingColliderWithFinger(finger);

            if (hit != null)
            {
                _touching = true;

                //Debug.Log("{InputObject} input touch over " + hit.Value.transform.name);
                eventTouchOver(finger, hit.Value);
            }
        }
Esempio n. 3
0
        private void eventTouchOver(InputTouchFinger finger, RaycastHit2D hit)
        {
            if (!reactToTouch())
            {
                return;
            }

            if (!finger.isCaptured() && captureFingerOnTouch)
            {
                //Debug.Log(name + " <b>captured</b> finger " + finger.fingerId);
                finger.captured = this;
            }

            onTouchOver(finger, hit);
        }
Esempio n. 4
0
        private void eventOnRelease(InputTouchFinger finger)
        {
            if (!reactToTouch())
            {
                return;
            }

            //Debug.Log(name+" release finger "+finger.fingerId);

            if (finger.isCapturedBy(this))
            {
                //Debug.Log(name + " <b>released</b> finger " + finger.fingerId);
                finger.captured = null;
            }

            if (!_interactive)
            {
                return;
            }

            if (finger.isCaptured() && dontReactToCapturedFinger)
            {
                return;
            }

            //on a besoin que touching soit MAJ avant d'apl ça pour le cas ou on desactive l'interactivité de l'extérieur
            bool wasTouching = _touching;

            _touching = false;

            onRelease(finger);

            if (wasTouching)
            {
                //chopper le hit correspondant a mes colliders
                RaycastHit2D?hit = getLocalMatchingColliderWithFinger(finger);

                if (hit != null)
                {
                    //Debug.Log("{InputObject} input released over " + hit.Value.transform.name);
                    onReleaseOver(finger, hit.Value);
                }
            }

            //if (cbRelease != null) cbRelease(finger);
        }