private AsteroidManagerScript getAsteroidManager()
    {
        if(asteroidManager == null) {
            asteroidManager = (AsteroidManagerScript) GameObject.FindGameObjectWithTag("AsteroidManager").GetComponent(typeof(AsteroidManagerScript));
        }

        return asteroidManager;
    }
    void OnTriggerEnter(Collider other)
    {
        asteroidManager = getAsteroidManager();
        bulletManagerScript = getBulletManager();
        gameManager = getGameManager();

        if(other.CompareTag("Bullet")) {
            this.gameObject.active = false;
            GameObject bullet = other.gameObject.transform.parent.gameObject;
            bulletManagerScript.DisableBullet(bullet);
            Vector3 newPos = new Vector3(transform.position.x, 20, transform.position.z);
            GameObject explosion = (GameObject) Instantiate(Resources.Load("Explosion"), newPos, transform.rotation);
            asteroidManager.hitAsteroid(this.gameObject);
        } else if(other.CompareTag("Ship")) {
            shipController = getShipController();
            shipController.crashShip();
        }
    }
    void Update()
    {
        asteroidManager = getAsteroidManager();

        transform.position = new Vector3(transform.position.x, 0, transform.position.z);

        Vector3 cameraBounds = Camera.main.camera.ScreenToWorldPoint(new Vector3(Screen.width,Screen.height,0));
        cameraBounds += new Vector3(40F, 0, 40F);

        if(this.transform.position.z < -cameraBounds.z || this.transform.position.z > cameraBounds.z ||
            this.transform.position.x < -cameraBounds.x || this.transform.position.x > cameraBounds.x) {
            asteroidManager.disableAsteroid(this.gameObject);
        }
    }