예제 #1
0
    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);
    }
예제 #3
0
    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;
        }
    }