public void Fragment()

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