FairyGUI.Container.HitTest C# (CSharp) Method

HitTest() protected method

protected HitTest ( ) : DisplayObject
return DisplayObject
        protected override DisplayObject HitTest()
        {
            if (_disabled)
                return null;

            if (this.cachedTransform.localScale.x == 0 || this.cachedTransform.localScale.y == 0)
                return null;

            Vector2 localPoint = new Vector2();
            Vector3 savedWorldPoint = HitTestContext.worldPoint;
            Vector3 savedDirection = HitTestContext.direction;

            if (hitArea != null)
            {
                if (!hitArea.HitTest(this, ref localPoint))
                {
                    HitTestContext.worldPoint = savedWorldPoint;
                    HitTestContext.direction = savedDirection;
                    return null;
                }
            }
            else
            {
                localPoint = GetHitTestLocalPoint();
                if (_clipRect != null && !((Rect)_clipRect).Contains(localPoint))
                {
                    HitTestContext.worldPoint = savedWorldPoint;
                    HitTestContext.direction = savedDirection;
                    return null;
                }
            }

            if (_mask != null && _mask.InternalHitTestMask() == null)
                return null;

            DisplayObject target = null;
            if (touchChildren)
            {
                int count = _children.Count;
                for (int i = count - 1; i >= 0; --i) // front to back!
                {
                    DisplayObject child = _children[i];
                    if (child == _mask)
                        continue;

                    target = child.InternalHitTest();
                    if (target != null)
                        break;
                }
            }

            if (target == null && opaque && (hitArea != null || _contentRect.Contains(localPoint)))
                target = this;

            HitTestContext.worldPoint = savedWorldPoint;
            HitTestContext.direction = savedDirection;

            return target;
        }

Same methods

Container::HitTest ( Vector2 stagePoint, bool forTouch ) : DisplayObject

Usage Example

示例#1
0
 static int HitTest(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         FairyGUI.Container  obj  = (FairyGUI.Container)ToLua.CheckObject <FairyGUI.Container>(L, 1);
         UnityEngine.Vector2 arg0 = ToLua.ToVector2(L, 2);
         bool arg1 = LuaDLL.luaL_checkboolean(L, 3);
         FairyGUI.DisplayObject o = obj.HitTest(arg0, arg1);
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
All Usage Examples Of FairyGUI.Container::HitTest