private void OnTriggerEnter2D(Collider2D collision) { AsteroidController asteroidController = collision.gameObject.GetComponent <AsteroidController>(); if (asteroidController) { if (collision.isActiveAndEnabled) { asteroidController.Split(); } if (destroyOnCollision) { Destroy(gameObject); } } }
public IEnumerator _11_GameManagerScoreIsIncreasedAfterAsteroidsAreDestroyed() { ClearScene(); Object.Instantiate(gameManagerPrefab); GameManager.InitializeTestingEnvironment(false, false, false, false, false); yield return(null); AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent <AsteroidController>(); int score = GameManager.score; asteroid.Split(); Assert.IsTrue(score != GameManager.score); Assert.IsTrue(GameManager.score == 1000); yield return(null); score = GameManager.score; AsteroidController[] asteroids = Object.FindObjectsOfType <AsteroidController>(); foreach (AsteroidController ast in asteroids) { ast.Split(); } Assert.IsTrue(score != GameManager.score); Assert.IsTrue(GameManager.score == 2000); yield return(null); score = GameManager.score; asteroids = Object.FindObjectsOfType <AsteroidController>(); foreach (AsteroidController ast in asteroids) { ast.Split(); } Assert.IsTrue(score != GameManager.score); Assert.IsTrue(GameManager.score == 3000); }
private void OnTriggerEnter2D(Collider2D collision) { // Preventing multiple collision triggers on the same frame if (isColliding) { return; } AsteroidController asteroidController = collision.gameObject.GetComponent <AsteroidController>(); if (asteroidController) { asteroidController.Split(); if (GameManager.instance != null) { GameManager.instance.RespawnShip(); } Instantiate(spaceshipDebris, transform.position, transform.GetChild(0).rotation); Destroy(gameObject); isColliding = true; } }