void OnTriggerEnter(Collider other)
    {
        IAsteroidCollider collider = other.gameObject.GetComponent <IAsteroidCollider>();

        if (collider != null)
        {
            OnCollision.Invoke(collider.Damage());
            collider.OnCollision();
        }
    }
Esempio n. 2
0
    public void InitializeAsteroid()
    {
        GameObject asteroid = pool.Get();

        asteroid.transform.position = new Vector3(spawnPointX, RandomYPosition());
        asteroid.transform.parent   = transform;

        MovingComponent moving = asteroid.GetComponent <MovingComponent>();

        moving.Initialize(RandomSpeed(), new LeftInputAdapter());
        moving.StartCoroutine(WaitForDestruction(asteroid));

        IAsteroidCollider asteroidCollider = asteroid.GetComponent <IAsteroidCollider>();

        asteroidCollider.SetCollisionCallBack(ReturnToPool);
    }
Esempio n. 3
0
    void OnTriggerEnter(Collider other)
    {
        IAsteroidCollider collider = other.GetComponent <IAsteroidCollider> ();

        if (collider != null)
        {
            Destroy(gameObject);
            Destroy(other.gameObject);
            collider.Collide();
            Instantiate(explosion, rb.transform.position, rb.transform.rotation);
        }
        else if (other.CompareTag("Asteroid"))
        {
            Destroy(gameObject);
            Instantiate(explosion, rb.transform.position, rb.transform.rotation);
        }
    }