예제 #1
0
    /// <summary>
    /// Turns Gameobject into multiple fragments
    /// </summary>
    private void generateFragments()
    {
        fragments = new List <GameObject> ();
        switch (shatterType)
        {
        case ShatterType.Triangle:
            fragments = SpriteExploder.GenerateTriangularPieces(gameObject, extraPoints, subshatterSteps);
            break;

        case ShatterType.Voronoi:
            fragments = SpriteExploder.GenerateVoronoiPieces(gameObject, extraPoints, subshatterSteps);
            break;

        case ShatterType.Cave:
            pointsResult = SpriteExploder.getPoints(gameObject, extraPoints);
            fragments    = SpriteExploder.GenerateCavePieces(gameObject, pointsResult, subshatterSteps);
            break;

        default:
            Debug.Log("invalid choice");
            break;
        }
        //sets additional aspects of the fragments
        foreach (GameObject p in fragments)
        {
            if (p != null)
            {
                p.layer = LayerMask.NameToLayer(fragmentLayer);
                p.GetComponent <Renderer> ().sortingLayerName = sortingLayerName;
                p.GetComponent <Renderer> ().sortingOrder     = orderInLayer;
            }
        }

        foreach (ExplodableAddon addon in GetComponents <ExplodableAddon>())
        {
            if (addon.enabled)
            {
                addon.OnFragmentsGenerated(fragments);
            }
        }
    }