コード例 #1
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        bool damagePlayer = false;

        // Collision with enemy
        EnemyScript enemy = collision.gameObject.GetComponent <EnemyScript>();

        if (enemy)
        {
            // Kill the enemy
            HealthScript enemyHealth = enemy.GetComponent <HealthScript>();
            if (enemyHealth)
            {
                enemyHealth.Damage(enemyHealth.hp);
            }

            //make explosion
            enemyHealth.ExplosionAnimation(explosionPrefab);
            SoundEffectsHelper.Instance.MakeDamageSound();


            damagePlayer = true;
        }

        // Damage the player
        if (damagePlayer)
        {
            HealthScript playerHealth = GetComponent <HealthScript>();
            if (playerHealth)
            {
                playerHealth.Damage(1);
            }
        }


        // Collision with area shot ammo
        AreaAmmoScript ammo = collision.gameObject.GetComponent <AreaAmmoScript>();

        if (ammo)
        {
            AreaWeaponScript weapon = GetComponent <AreaWeaponScript>();
            if (weapon)
            {
                weapon.ammunition += 1;
                ammoCounter.IncreaseCounter();
            }
            Destroy(ammo.gameObject);
        }

        // Collision with time stop
        TimeStopScript timeStop = collision.gameObject.GetComponent <TimeStopScript>();

        if (timeStop)
        {
            // disable box collider
            BoxCollider2D bc = timeStop.gameObject.GetComponent <BoxCollider2D>();
            if (bc)
            {
                bc.enabled = false;
            }

            // disable renderer
            SpriteRenderer sr = timeStop.gameObject.GetComponent <SpriteRenderer>();
            if (sr)
            {
                sr.enabled = false;
            }

            timeStop.StopTime();
        }
    }