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);
        }