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);
        }
    }
Esempio n. 4
0
    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);
        }
    }