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); }
public void RemoveBuff(G20_EnemyBuff enemy_buff) { enemy_buff.wasRelease = true; buffList.Remove(enemy_buff); }
public void AddBuff(G20_EnemyBuff enemy_buff) { buffList.Add(enemy_buff); enemy_buff.StartBuff(() => RemoveBuff(enemy_buff)); }