// Start is called before the first frame update
    void Start()
    {
        //Time.timeScale = 4;
        navMeshAgent = GetComponent <NavMeshAgent>();
        tankShooting = GetComponent <TankShooting>();
        tankHealth   = GetComponent <TankHealthHardcoded>();

        navMeshAgent.SetDestination(enemyAgent.transform.position);
        transform.position = startingPoints[Random.Range(0, startingPoints.Length)].position;
        tankHealth.Start();
        alive = true;
    }
    private void OnTriggerEnter(Collider other)
    {
        if (other.isTrigger)
        {
            return;
        }
        // Collect all the colliders in a sphere from the shell's current position to a radius of the explosion radius.
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_ExplosionRadius, m_TankMask);

        // Go through all the colliders...
        for (int i = 0; i < colliders.Length; i++)
        {
            // ... and find their rigidbody.
            Rigidbody targetRigidbody = colliders[i].GetComponent <Rigidbody>();

            // If they don't have a rigidbody, go on to the next collider.
            if (!targetRigidbody)
            {
                continue;
            }

            // Add an explosion force.
            //targetRigidbody.AddExplosionForce(m_ExplosionForce, transform.position, m_ExplosionRadius);

            // Find the TankHealth script associated with the rigidbody.
            TankHealth          targetHealth        = targetRigidbody.GetComponent <TankHealth>();
            TankHealthHardcoded tankHealthHardcoded = targetRigidbody.GetComponent <TankHealthHardcoded>();
            // If there is no TankHealth script attached to the gameobject, go on to the next collider.
            if (!targetHealth && !tankHealthHardcoded)
            {
                continue;
            }

            // Calculate the amount of damage the target should take based on it's distance from the shell.
            float damage = CalculateDamage(targetRigidbody.position);

            if (!targetHealth)
            {
                tankHealthHardcoded.TakeDamage(damage);
            }
            else
            {
                // Deal this damage to the tank.
                targetHealth.TakeDamage(damage);
            }
        }

        //// Unparent the particles from the shell.
        //m_ExplosionParticles.transform.parent = null;

        //// Play the particle system.
        //m_ExplosionParticles.Play();

        //// Play the explosion sound effect.
        //m_ExplosionAudio.Play();

        //// Once the particles have finished, destroy the gameobject they are on.
        //Destroy(m_ExplosionParticles.gameObject, m_ExplosionParticles.duration);

        // Destroy the shell.
        Destroy(gameObject);
    }