// 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); } } }