private void OnTriggerEnter(Collider other) { if (!active) { return; } TankScript hitTank = other.gameObject.GetComponent <TankScript>(); if (hitTank != null && hitTank == shooter) { return; } else if (hitTank != null) { hitTank.TakeDamage(damage); } else if (other.GetComponent <IPoolable>() == null && other.GetComponent <Renderer>() != null) { RaycastHit hit; Vector3 hitPoint = other.ClosestPoint(transform.position); Physics.Raycast(transform.position, hitPoint - transform.position, out hit); GameObject crack = GameManager.Instance.CrackPool.GetObject(hitPoint + new Vector3(0f, 1f, 0f), Quaternion.LookRotation((hitPoint + new Vector3(0f, 1f, 0f)) - (decalOrigin.transform.position + new Vector3(0f, 1f, 0f)))); crack.transform.LookAt(hitPoint + new Vector3(0f, 1f, 0f)); } GameObject particles = Instantiate(impactParticles, transform.position, transform.rotation); AudioManager.Instance.SpawnSound("ImpactSound", particles.transform, true, false, false, 0.5f); GameManager.Instance.ProjectilePool.RePoolObject(gameObject); }
private void OnTriggerEnter(Collider other) { TankScript tank = other.GetComponent <TankScript>(); if (tank != null) { tank.TakeDamage(damage); } }
private void OnTriggerEnter(Collider other) { if (!mineActivated || !active) { return; } TankScript tank = other.GetComponent <TankScript>(); if (tank != null) { tank.TakeDamage(damage); GameObject exp = Instantiate(explosion); AudioManager.Instance.SpawnSound("ExplosionSound", exp.transform, true, false, false, 0.658f); GameManager.Instance.MinePool.RePoolObject(gameObject); } }
private void OnTriggerEnter(Collider other) { TankScript hitTank = other.GetComponent <TankScript>(); IPoolable hitPoolable = other.GetComponent <IPoolable>(); if (hitTank != null && hitTank != shooter) { hitTank.TakeDamage(damage); GameObject exp = Instantiate(blast, transform.position, Quaternion.identity); AudioManager.Instance.SpawnSound("ExplosionSound", exp.transform, true, false, false, 0.658f); GameManager.Instance.MissilePool.RePoolObject(gameObject); } else if (hitPoolable != null) { GameManager.Instance.MissilePool.RePoolObject(gameObject); } }