コード例 #1
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);
    }
コード例 #2
0
 public void RemoveBuff(G20_EnemyBuff enemy_buff)
 {
     enemy_buff.wasRelease = true;
     buffList.Remove(enemy_buff);
 }
コード例 #3
0
 public void AddBuff(G20_EnemyBuff enemy_buff)
 {
     buffList.Add(enemy_buff);
     enemy_buff.StartBuff(() => RemoveBuff(enemy_buff));
 }