Beispiel #1
0
        public void InitializeColliders()
        {
            localColliders.Clear();
            worldColliders.Clear();
            colliderTransform.Clear();

            foreach (Transform transform in gameObject.transform)
            {
                EdgeCollider2D[]    edgeColliders    = transform.GetComponents <EdgeCollider2D>();
                PolygonCollider2D[] polygonColliders = transform.GetComponents <PolygonCollider2D>();

                if (edgeColliders.Length > 0)
                {
                    foreach (EdgeCollider2D collider in edgeColliders)
                    {
                        Polygon2 poly = Polygon2ListCollider2D.CreateFromEdgeCollider(collider);

                        localColliders.Add(poly);
                        colliderTransform.Add(transform);
                    }
                }

                if (polygonColliders.Length > 0)
                {
                    foreach (PolygonCollider2D collider in polygonColliders)
                    {
                        Polygon2 poly = Polygon2ListCollider2D.CreateFromPolygonColliderToLocalSpace(collider)[0];

                        localColliders.Add(poly);
                        colliderTransform.Add(transform);
                    }
                }
            }
        }
        public override List <Polygon2> GetPolygonsLocal()
        {
            if (LocalPolygons != null)
            {
                return(LocalPolygons);
            }

            if (transform == null)
            {
                return(LocalPolygons);
            }

            LocalPolygons = Polygon2ListCollider2D.CreateFromGameObject(transform.gameObject);

            if (LocalPolygons.Count > 0)
            {
                edgeCollider2D = (transform.GetComponent <EdgeCollider2D>() != null);

                //} else {
                //Debug.LogWarning("SmartLighting2D: LightingCollider2D object is missing Collider2D Component", transform);
            }

            return(LocalPolygons);
        }