private void OnCollectorReached(UILoadingEnemy enemy)
    {
        // TODO
        // particles?
        // sound effect?
        if (m_TotalCollected > 0)
        {
            SetCollected(m_TotalCollected - 1);
        }

        Destroy(enemy.gameObject);
    }
    private void OnEnemyDestroyed(UILoadingEnemy enemy)
    {
        // TODO
        // particles?
        // sound effect?

        RectTransform enemyTransform = enemy.GetComponent <RectTransform>();

        SpawnCollectibleAtPosition(enemyTransform.anchoredPosition);

        enemy.OnDestroyed        -= OnEnemyDestroyed;
        enemy.OnCollectorReached -= OnCollectorReached;

        Destroy(enemy.gameObject);
    }
    private void SpawnEnemy()
    {
        Vector2       randPosition = UnityEngine.Random.insideUnitCircle;
        GameObject    enemyObj     = (GameObject)Instantiate(m_EnemyPrefab, this.transform);
        RectTransform rTransform   = enemyObj.GetComponent <RectTransform>();

        UILoadingEnemy enemy = enemyObj.GetComponent <UILoadingEnemy>();

        if (enemy != null)
        {
            enemy.OnDestroyed        += OnEnemyDestroyed;
            enemy.OnCollectorReached += OnCollectorReached;

            enemy.SetTargetPosition(Vector2.zero);
        }
        else
        {
            Debug.LogErrorFormat("Enemy doesn't have the UILoadingEnemy component attached");
        }

        rTransform.anchoredPosition = randPosition.normalized * 500f; // define constant for radius
    }