示例#1
0
    // Polygon Scatter Particles Effect
    void ExplodePolygon(GameObject CutObject)
    {
        Slicer2D.explosionPieces = 5;
        Slice2D explosionResult = CutObject.GetComponent <Slicer2D>().Explode();

        float z = 0f;

        foreach (GameObject b in explosionResult.gameObjects)
        {
            z -= 0.01f;

            Slicer2D slicer = b.GetComponent <Slicer2D>();
            slicer.Initialize();
            Destroy(slicer);

            b.AddComponent <DestroyTimer>();

            Rigidbody2D rigidBody2D = b.AddComponent <Rigidbody2D>();

            b.transform.Translate(0, 0, 1 + z);

            if (rigidBody2D)
            {
                Rect  rect          = Polygon2D.CreateFromCollider(b).GetBounds();
                float sliceRotation = Vector2D.Atan2(new Vector2D(rect.center), new Vector2D(b.transform.position));
                Physics2DHelper.AddForceAtPosition(rigidBody2D, new Vector2(Mathf.Cos(sliceRotation) * 351f, Mathf.Sin(sliceRotation) * 351f), rect.center);
            }
        }
    }