示例#1
0
    private void UpdateOverlappedColliders()
    {
        _overlappedColliders.Clear();
        foreach (var pair in _childCollidersToTypeDict)
        {
            Collider            childCollider  = pair.Key;
            OverlapColliderType colliderType   = pair.Value;
            Collider[]          otherColliders = new Collider[0];
            switch (colliderType)
            {
            case OverlapColliderType.BoxCollider:
                otherColliders = ColliderUtility.CheckOverlapBox((BoxCollider)childCollider);
                break;

            case OverlapColliderType.SphereCollider:
                otherColliders = ColliderUtility.CheckOverlapSphere((SphereCollider)childCollider);
                break;

            default:
                break;
            }
            int n = otherColliders.Length;
            for (int i = 0; i < n; i++)
            {
                Collider otherCollider = otherColliders[i];
                _overlappedColliders.Add(otherCollider);
            }
        }
    }
        /// <summary>
        /// Return a set of overlapping colliders with colliders attached to this
        /// game object.
        /// </summary>
        /// <returns>A set of overlapping colliders.</returns>
        public HashSet <Collider> CheckOverlapColliders()
        {
            _overlappedColliderSet.Clear();
            // Check OverlapBox for all box colliders
            int n = _selfBoxColliders.Count;

            for (int i = 0; i < n; i++)
            {
                BoxCollider boxCollider         = _selfBoxColliders[i];
                Collider[]  overlappedColliders = ColliderUtility.CheckOverlapBox(
                    boxCollider);
                int overlappedColliderLength = overlappedColliders.Length;
                for (int j = 0; j < overlappedColliderLength; j++)
                {
                    Collider overlappedCollider = overlappedColliders[j];
                    _overlappedColliderSet.Add(overlappedCollider);
                }
            }
            // Check OverlapSphere for all sphere colliders
            n = _selfSphereColliders.Count;
            for (int i = 0; i < n; i++)
            {
                SphereCollider sphereCollider      = _selfSphereColliders[i];
                Collider[]     overlappedColliders =
                    ColliderUtility.CheckOverlapSphere(sphereCollider);
                int overlappedColliderLength = overlappedColliders.Length;
                for (int j = 0; j < overlappedColliderLength; j++)
                {
                    Collider overlappedCollider = overlappedColliders[j];
                    _overlappedColliderSet.Add(overlappedCollider);
                }
            }
            return(_overlappedColliderSet);
        }
示例#3
0
文件: Deck.cs 项目: wood9366/freecell
 public bool isOver(Card card)
 {
     if (TopCard != null)
     {
         return(ColliderUtility.IsColliderOverlap(card.collider2d, TopCard.collider2d));
     }
     else
     {
         return(ColliderUtility.IsColliderOverlap(card.collider2d, collider2d));
     }
 }
示例#4
0
    // Token: 0x060018E9 RID: 6377 RVA: 0x0005F724 File Offset: 0x0005D924
    private void Reset()
    {
        if (this.shape == null)
        {
            this.shape = new ShapeDefinition();
        }
        Shape shape;

        if (base.collider && ColliderUtility.GetGeometricShapeLocal(base.collider, ref shape))
        {
            this.shape.Shape = shape;
        }
    }
示例#5
0
 void Awake()
 {
     _status             = ButtonStatus.Idle;
     _buttonMoverTrigger =
         _buttonMoverTriggerTransform.GetComponent <ICollisionTriggeredBody>();
     if (Miscellaneous.CheckNullAndLogError(_buttonMoverTrigger))
     {
         return;
     }
     _buttonMoverTrigger.TriggerStart += OnButtonMoveStart;
     _buttonMoverTrigger.TriggerEnd   += OnButtonMoveStop;
     _childCollidersToTypeDict         = ColliderUtility.GenerateChildCollidersToTypeDict(transform);
     _overlappedColliders              = new HashSet <Collider>();
     _curPositionNormalized            = 0f;
 }
示例#6
0
    // Token: 0x060018E7 RID: 6375 RVA: 0x0005F5D0 File Offset: 0x0005D7D0
    private void OnDrawGizmosSelected()
    {
        Collider collider = base.collider;

        if (collider)
        {
            Gizmos.color = new Color(0.5f, 0.5f, 1f, 0.8f);
            this.shape.Transform(ColliderUtility.ColliderToWorld(collider)).Gizmo();
            Matrix4x4 localToWorldMatrix = base.transform.localToWorldMatrix;
            Gizmos.color = new Color(0.9f, 0.5f, 1f, 0.8f);
            global::CCPusher.DrawPushPlane(localToWorldMatrix, this.pushPoint0, this.pushDir0);
            Gizmos.color = new Color(1f, 0.5f, 0.5f, 0.8f);
            global::CCPusher.DrawPushPlane(localToWorldMatrix, this.pushPoint1, this.pushDir1);
        }
    }