void OnTriggerEnter(Collider other) { IAsteroidCollider collider = other.gameObject.GetComponent <IAsteroidCollider>(); if (collider != null) { OnCollision.Invoke(collider.Damage()); collider.OnCollision(); } }
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); }
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); } }