예제 #1
0
    static public List <Slice2D> ComplexCutSliceAll(ComplexCut complexCut, Slice2DLayer layer = null)
    {
        List <Slice2D> result = new List <Slice2D> ();

        if (layer == null)
        {
            layer = Slice2DLayer.Create();
        }

        foreach (Slicer2D id in GetListLayer(layer))
        {
            Slice2D sliceResult = id.ComplexCutSlice(complexCut);
            if (sliceResult.GetGameObjects().Count > 0)
            {
                result.Add(sliceResult);
            }
        }

        return(result);
    }
예제 #2
0
    static public List <Slice2D> ExplodeInPointAll(Vector2D point, Slice2DLayer layer = null)
    {
        List <Slice2D> result = new List <Slice2D> ();

        if (layer == null)
        {
            layer = Slice2DLayer.Create();
        }

        foreach (Slicer2D id in GetListLayer(layer))
        {
            Slice2D sliceResult = id.ExplodeInPoint(point);
            if (sliceResult.GetGameObjects().Count > 0)
            {
                result.Add(sliceResult);
            }
        }

        return(result);
    }
예제 #3
0
    public Slice2D Explode(int explosionSlices = 0)
    {
        Slice2D slice2D = Slice2D.Create(gameObject, Slice2DType.Explode);

        if (isActiveAndEnabled == false)
        {
            return(slice2D);
        }

        Polygon2D colliderPolygon = GetPolygonToSlice();

        if (colliderPolygon != null)
        {
            Slice2D sliceResult = Slicer2D.API.Explode(colliderPolygon, explosionSlices);
            PerformResult(sliceResult.GetPolygons(), sliceResult);

            return(sliceResult);
        }

        return(slice2D);
    }
예제 #4
0
    bool OnSlice(Slice2D sliceResult)
    {
        switch (anchorType)
        {
        case AnchorType.CancelSlice:
            Polygon polyA = polygon.ToWorldSpace(anchorCollider.transform);
            foreach (Polygon poly in sliceResult.polygons)
            {
                if (MathHelper.PolyCollidePoly(polyA.pointsList, poly.pointsList) == false)
                {
                    return(true);
                }
            }

            return(false);

        default:
            break;
        }

        return(true);
    }