void OnCollisionEnter2D(Collision2D collision) { //Debug.Log(collision.collider.gameObject.layer); if (collision.collider.gameObject.layer == LayerMask.NameToLayer("ground")) { //print("object is " + collision.collider.gameObject.name); Destroy(gameObject); } else if (collision.collider.gameObject.layer == LayerMask.NameToLayer("enemy")) { //print("object is " + collision.collider.gameObject.name); Instantiate(BloodEffect, this.transform.position, Quaternion.identity); //Debug.Log("spawned blood effect"); Destroy(gameObject); } ObjectToDamage = GameObject.Find(collision.collider.gameObject.name); HP = ObjectToDamage.GetComponent <ObjectHP>(); if (HP != null) { HP.reduceHP(playerBullateDamage); //print(ObjectToDamage.name + " has " + HP.currentHP); } Destroy(gameObject); //Collidedrb2D = gameObject.GetComponent<Rigidbody2D>(); }
void OnCollisionEnter2D(Collision2D collision) { //Debug.Log(collision.collider.gameObject.layer); if (collision.collider.gameObject.layer == LayerMask.NameToLayer("ground")) { //print("object is " + collision.collider.gameObject.name); Destroy(gameObject); } else if (collision.collider.gameObject.layer == LayerMask.NameToLayer("player")) { //print("object is " + collision.collider.gameObject.name); Destroy(gameObject); } else { Destroy(gameObject); } ObjectToDamage = GameObject.Find(collision.collider.gameObject.name); HP = ObjectToDamage.GetComponent <ObjectHP>(); if (HP != null) { Collidedrb2D = gameObject.GetComponent <Rigidbody2D>(); HP.reduceHP(enemyBulleteDamage); } //print(ObjectToDamage.name + " has " + HP.currentHP); }
void explodeBarrel() { //print("executed explode func"); //instanciate partical effect Collider2D[] objectsInExplotion = Physics2D.OverlapCircleAll(transform.position, xplotionRadious); foreach (Collider2D nearbyObject in objectsInExplotion) { ObjectHP hp = nearbyObject.GetComponent <ObjectHP>(); if (hp != null) { hp.reduceHP(BarrelDamage); } Rigidbody2D rb2d = nearbyObject.GetComponent <Rigidbody2D>(); if (rb2d != null && nearbyObject.name != this.name) { //AddExplosionForce(rb2d, xplotionForce,transform.position); var explotionDir = rb2d.position - (Vector2)transform.position; var explotionDist = explotionDir.magnitude; explotionDir.y = explotionDir.y + upwardsModifier; explotionDir.Normalize(); //print("Name -- " + nearbyObject.name + " normalize explotdir -- " + explotionDir + " explot dist --" + explotionDist); rb2d.AddForce(xplotionForce * explotionDir, ForceMode2D.Impulse); } } for (int i = 0; i < checkpointRad; i++) { float angle = i; for (float incremental = 0; incremental < xplotionRadious; incremental = incremental + .2f) { float x = Mathf.Cos(angle) * incremental; float y = Mathf.Sin(angle) * incremental; incermntlTileDustructForBarrel = this.transform.position + new Vector3(x, y, 0); Debug.DrawRay(incermntlTileDustructForBarrel, Vector3.up, Color.red); if (tilHlt.destructableTileMap.HasTile(tilHlt.destructableTileMap.WorldToCell(incermntlTileDustructForBarrel))) { tilHlt.destructableTileMap.SetTile(tilHlt.destructableTileMap.WorldToCell(incermntlTileDustructForBarrel), null); Instantiate(DestructionEffect, incermntlTileDustructForBarrel, Quaternion.identity); } } } willDestroyNextFrame = true; //explosionCameraShake.instance.shakeCamera(xPlotionshake, xPlotiontime); }