Пример #1
0
    IEnumerator CreateEnemy(SpwanPointEnemy point, E_EnemyType enemyType = E_EnemyType.None, RoundInfo.SpawnInfo spawnInfo = null)
    {
        if (enemyType == E_EnemyType.None)
        {
            enemyType = point.EnemyType;
        }
        //从缓存获取怪物
        //GameObject prefab = Resources.Load<GameObject> ("Prefabs/Monster");
        //Agent enemy = GameObject.Instantiate (prefab).GetComponent<Agent> ();

        Agent enemy = MissionZone.Instance.GetHuman(enemyType, point.transform);

        while (enemy == null)
        {
            yield return(new WaitForSeconds(0.5f));

            enemy = MissionZone.Instance.GetHuman(enemyType, point.transform);
        }

        enemy.PrepareForStart();

        CombatEffectsManager.Instance.PlaySpawnEffect(point.Transform.position, point.Transform.forward);

        MyGameZone.AddEnemy(enemy);
        EnemiesAlive.Add(enemy);

        if (spawnInfo != null && spawnInfo.WhenKilledStopSpawn)
        {
            ImportantAgent = enemy;
        }

        yield return(new WaitForSeconds(0.1f));
    }
Пример #2
0
    IEnumerator SpawnEnemy(SpawnPointEnemy spawnpoint)
    {
        CombatEffectsManager.Instance.PlaySpawnEffect(spawnpoint.Transform.position, spawnpoint.Transform.forward);

        yield return(new WaitForSeconds(0.1f));

        GameObject enemy = Mission.Instance.GetHuman(spawnpoint.EnemyType, spawnpoint.Transform);


        Agent agent = enemy.GetComponent("Agent") as Agent;

        agent.PrepareForStart();

        if (spawnpoint.SpawnAnimation != null)
        {
            agent.PlayAnim(spawnpoint.SpawnAnimation.name);
        }

        MyGameZone.AddEnemy(agent);
        EnemiesAlive.Add(agent);
    }