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