Beispiel #1
0
    public GameObject CreateMinion(Vector3 spawnPosition, string enemyTag, int enemyLayer, Vector3 enemyScale, float colliderRadius, int animationNumber,
                                   bool enemyCounter, EnemyType enemyType, int[] enemyItem, int enemyNumber, float enemyHP, int enemyPatternNumber, int enemyCounterPatternNumber,
                                   float enemyAttackWaitTime, float enemyAttackDelayTime, bool isPatternOnce, bool isPatternRepeat, int enemyFireCount, float enemyAttackRepeatTime,
                                   int enemyCustomPatternNumber = 0, bool isAutoDestroy = false, float waitTime = 0.0f)
    {
        GameObject enemy = enemyPool.GetChild(0).gameObject;

        enemy.SetActive(true);
        enemy.transform.position = spawnPosition;
        enemy.gameObject.tag     = enemyTag;
        enemy.gameObject.layer   = enemyLayer;
        enemy.transform.SetParent(enemyParent);
        enemy.transform.localScale = enemyScale;

        CircleCollider2D circleCollider2D = enemy.GetComponent <CircleCollider2D>();

        circleCollider2D.enabled = true;
        circleCollider2D.radius  = colliderRadius;

        Animator animator = enemy.GetComponent <Animator>();

        animator.runtimeAnimatorController = characterAnimatorController[animationNumber];

        EnemyStatus enemyStatus = enemy.GetComponent <EnemyStatus>();

        enemyStatus.SetCounter(enemyCounter);
        enemyStatus.SetEnemyType(enemyType);
        enemyStatus.SetEnemyItem(enemyItem);
        if (enemyType.Equals(EnemyType.ENEMYTYPE_BOSS))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(enemyNumber);
        }
        else if (enemyType.Equals(EnemyType.ENEMYTYPE_NONE))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(0);
        }
        else
        {
            enemyStatus.SetEnemyNumber(enemyNumber);
            enemyStatus.SetEnemyBossNumber(0);
        }
        enemyStatus.SetEnemyMaxHP(enemyHP);
        enemyStatus.SetEnemyCurrentHP(enemyStatus.GetEnemyMaxHP());

        EnemyFire enemyFire = enemy.GetComponent <EnemyFire>();

        enemyFire.SetEnemyPatternNumber(enemyPatternNumber);
        enemyFire.SetEnemyCounterPatternNumber(enemyCounterPatternNumber);
        enemyFire.SetEnemyAttackWaitTime(enemyAttackWaitTime);
        enemyFire.SetEnemyAttackDelayTime(enemyAttackDelayTime);
        enemyFire.SetEnemyPatternOnce(isPatternOnce);
        enemyFire.SetEnemyPatternRepeat(isPatternRepeat);
        enemyFire.SetEnemyFireCount(enemyFireCount);
        enemyFire.SetEnemyAttackRepeatTime(enemyAttackRepeatTime);
        enemyFire.SetEnemyCustomPatternNumber(enemyCustomPatternNumber);

        EnemyDestroy enemyDestroy = enemy.GetComponent <EnemyDestroy>();

        if (isAutoDestroy.Equals(true))
        {
            StartCoroutine(enemyDestroy.EnemyAutoDestroy(waitTime));
        }

        return(enemy);
    }
 private void OnEnemyDestroyed(EnemyDestroy evt)
 {
 }