public GameObject GetPopEnemy(G20_EnemyType enemyType)
    {
        switch (enemyType)
        {
        case G20_EnemyType.NORMAL:
            return(SelectEnemyAI <G20_NormalAI>(G20_EnemyModelType.Normal));

        case G20_EnemyType.GOLDEN:
            return(SelectEnemyAI <G20_NormalAI>(G20_EnemyModelType.Golden));

        case G20_EnemyType.BOMB:
            return(SelectEnemyAI <G20_BombAI>(G20_EnemyModelType.Bomb));

        case G20_EnemyType.SMALL:
            return(SelectEnemyAI <G20_SmallAI>(G20_EnemyModelType.Small));

        case G20_EnemyType.NORMAL_STRAIGHT:
            return(SelectEnemyAI <G20_NormalStraightAI>(G20_EnemyModelType.Normal));

        case G20_EnemyType.GOLDEN_STRAIGHT:
            return(SelectEnemyAI <G20_NormalStraightAI>(G20_EnemyModelType.Golden));

        case G20_EnemyType.BOMB_STRAIGHT:
            return(SelectEnemyAI <G20_BombStraightAI>(G20_EnemyModelType.Bomb));

        case G20_EnemyType.SMALL_STRAIGHT:
            return(SelectEnemyAI <G20_SmallStraightAI>(G20_EnemyModelType.Small));

        case G20_EnemyType.SMALL_BULLET:
            return(SelectEnemyAI <G20_FlyAI>(G20_EnemyModelType.SmallBullet));
        }
        return(null);
    }
예제 #2
0
    public void PopSameAppleWithEnemy(G20_EnemyType enemyType)
    {
        G20_ScoreAppleType appleType = G20_ScoreAppleType.APPLE;

        if (enemyType == G20_EnemyType.GOLDEN ||
            enemyType == G20_EnemyType.GOLDEN_STRAIGHT)
        {
            appleType = G20_ScoreAppleType.GOLDEN;
        }

        PopApple(appleType);
    }
예제 #3
0
    public G20_Enemy EnemyPop(G20_EnemyType enemyType, Vector3 position, G20_EnemyPopType popType = G20_EnemyPopType.RISE_UP)
    {
        // 敵のオブジェクト生成
        var ene = popEnemySelector.GetPopEnemy(enemyType);

        ene.transform.SetParent(transform.parent);

        G20_SEManager.GetInstance().Play(G20_SEType.SUMMON_APPLE, position + new Vector3(0, 0.02f, 0));
        // 出現演出
        switch (popType)
        {
        case G20_EnemyPopType.RISE_UP:
            //敵の召喚エフェクト生成(少し魔法陣を浮かす)
            G20_EffectManager.GetInstance().Create(G20_EffectType.SUMMON_APPLE, position + new Vector3(0, 0.02f, 0));
            ene.transform.position = position + new Vector3(0, riseUpDifY, 0);
            StartCoroutine(RiseUp(ene));
            break;

        case G20_EnemyPopType.WALK_FORWARD:
            G20_EffectManager.GetInstance().Create(G20_EffectType.SUMMON_APPLE_VERT, position);
            position.y             = 0f;
            ene.transform.position = position + new Vector3(0, 0, walkForwardDifZ);
            StartCoroutine(WalkForward(ene));
            break;
        }

        var enemy = ene.GetComponent <G20_Enemy>();

        //enemyのbuffを設定
        G20_EnemyBuff enemy_buff = null;

        if (onPopSpeedBuffValue != 0)
        {
            enemy_buff = new G20_SpeedBuff(enemy, 100.0f, onPopSpeedBuffValue);
        }

        if (enemy_buff != null)
        {
            enemy.AddBuff(enemy_buff);
        }
        // 敵情報保存
        G20_EnemyCabinet.GetInstance().RegisterEnemy(enemy);

        //敵情報破棄を敵が死んだときに実行
        enemy.OnDestroyAction += G20_EnemyCabinet.GetInstance().UnregisterEnemy;

        return(enemy);
    }