void OnCollisionEnter2D(Collision2D collision) { CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } if (bounceCountLeft == bounceCount) // we remove sender immunity at first bounce { if (ignoreColliders != null) { foreach (Collider2D collider in ignoreColliders) { Physics2D.IgnoreCollision(collider, ownCollider, false); } } } if (bounceCountLeft > 0) { Vector2 newDirection = Vector2.Reflect(direction, collision.GetContact(0).normal); direction = newDirection; rigidBody.velocity = direction * speed; bounceCountLeft--; } else { gameObject.SetActive(false); } }
void OnCollisionEnter2D(Collision2D collision) { if (!hasStopped) { hasStopped = true; CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } else { gameObject.layer = LayerMask.NameToLayer("Sticky"); rigidBody.bodyType = RigidbodyType2D.Kinematic; rigidBody.velocity = Vector2.zero; if (ignoreColliders != null) { foreach (Collider2D collider in ignoreColliders) { Physics2D.IgnoreCollision(collider, ownCollider, false); } } } } }
void OnCollisionEnter2D(Collision2D collision) { CharacterDamage character = collision.collider.GetComponent <CharacterDamage>(); if (character != null) { character.ReceiveDamage(actorNumber, this, damage); } else { } gameObject.SetActive(false); }