public void Initialize(Vector3 position)
    {
        transform.localScale = Vector2.zero;

        transform.position = position;
        ObjectPool.Instance.AddOnObjectCreateListener(NewObjectCreated);
        subjected = new List <IBlackHoleAttractable>();

        if (anim == null)
        {
            anim = GetComponent <Animation>();
        }

        anim.Play("FadeIn");

        GameTime.Instance.AddTimer(new Timer(7, delegate()
        {
            StartCoroutine(DisableWait());
        }));

        GameObject[] all = FindObjectsOfType <GameObject>();
        for (int i = 0; i < all.Length; i++)
        {
            IBlackHoleAttractable at = all[i].GetComponent <IBlackHoleAttractable>();
            if (at != null)
            {
                subjected.Add(at);
            }
        }
    }
    private void NewObjectCreated(GameObject go)
    {
        IBlackHoleAttractable at = go.GetComponent <IBlackHoleAttractable>();

        if (at != null)
        {
            if (!subjected.Contains(at))
            {
                subjected.Add(at);
            }
        }
    }