in Assets/Scripts/AsteroidFragmenter.cs [11:36]
public void Fragment()
{
if (transform.localScale.x <= minimumScale) return;
var asteroidTransformPosition = transform.position;
var numberOfFragments = UnityEngine.Random.Range(minimumFragments, maximumFragments);
for (var i = 0; i < numberOfFragments; i++)
{
// Create fragment
var fractureGameObject = Instantiate(asteroidFragment,new Vector3(asteroidTransformPosition.x, asteroidTransformPosition.y, asteroidTransformPosition.z), Quaternion.Euler(0, 0, 0));
// Randomize direction
fractureGameObject.transform.LookAt(
new Vector3(UnityEngine.Random.Range(Screen.width * -1, Screen.width), UnityEngine.Random.Range(Screen.height * -1, Screen.height), 0));
if (fractureGameObject.TryGetComponent<AsteroidController>(out var fractureAsteroidController))
{
fractureAsteroidController.damage = (int)Math.Max(10, fractureAsteroidController.damage / 2f);
}
var scale = transform.localScale.x / 2;
fractureGameObject.transform.localScale = new Vector3(scale, scale, scale);
}
}