/// ④更新 public void Update() { if (_number <= 0) { // ⑧すべての敵が出現したので何もしない return; } // ⑤経過時間を足し込む _tInterval += Time.deltaTime; // ⑥経過時間をチェック if (_tInterval >= _interval) { // インターバルを超えたので敵出現 _tInterval -= _interval; // 敵を生成 int ranene = Random.Range(0, 2); if (ranene == 0) { Enemy.Add(_pathList); } if (ranene == 1) { Enemy2.Add(_pathList); } // ⑦敵生成カウンタを減らす _number--; } }
void Initilize_Enemy() { // 管理オブジェクトを生成 Enemy.parent = new TokenMgr <Enemy>("Enemy", ENEMY_NUM); Random.InitState(10); e_list = new List <Enemy>(ENEMY_NUM / 4); for (int i = 0; i < ENEMY_NUM / 4; i++) { int ind = Random.Range(0, stageList.Count); Stage tmp = stageList[ind]; if (stageList.Remove(stageList[ind])) { stageList.Insert(0, tmp); } ind = Random.Range(1, stageList.Count); Enemy e = Enemy.Add(e_list.Count, stageList[ind].obj.transform.position.x, 1.0f, stageList[ind].obj.transform.position.z, this); e.InitMgrTarget(enemy_move_speed / 2, new Vector3(stageList[0].obj.transform.position.x, stageList[0].obj.transform.position.y + 1, stageList[0].obj.transform.position.z)); //Debug.Log(stageList[0].obj.transform.position); e.Initilize_Shot(); e_list.Add(e); } }
public void AddEnemy(BattleSceneTypeEnemy enemy, bool processResources) { for (int i = 0; i < enemy.Count; i++) { StageEnemy curEnemy = new StageEnemy(); curEnemy.StageNumber = StageNumber; curEnemy.CycleNumber = CycleNumber; curEnemy.EnemyType = enemy; double intensityMult = 1; double cycleMultiplier = 1; if (CycleNumber > 1) { intensityMult = Math.Pow((1 + (double)enemy.CycleIntensityMult / 100), CycleNumber - 1); cycleMultiplier = Math.Pow((1 + (double)enemy.CycleMultiplier / 100), CycleNumber - 1); } curEnemy.BattleIntensity = (int)Math.Round(enemy.Rig.sModel.BattleIntensity * intensityMult); curEnemy.EnemyStatsMultiplier = cycleMultiplier; curEnemy.CalculateParameters(); if (processResources) { foreach (var c in Cr) { c.ProcessEnemy(curEnemy); } } Enemy.Add(curEnemy); } }
public void Add_Enemy(Vector3 pos) { Enemy e = Enemy.Add(e_list.Count, pos.x, 0.75f, pos.z, this); Stage targetStage = pm.Sort_Prob(stageList); e.InitMgrTarget(enemy_move_speed / 2, new Vector3(targetStage.obj.transform.position.x, targetStage.obj.transform.position.y + 1, targetStage.obj.transform.position.z)); e_list.Add(e); }
public DungeonMatchup(List <string> EnemyNames) { EnemyNames.ForEach(s => { var enemy = GetEnemy(s); if (EnemyNames.Count(e => e.Equals(s)) > 1) { enemy.Name = $"{enemy.Name} {Enemy.Count(e => e.Name.Contains(enemy.Name)) + 1}"; } Enemy.Add(enemy); }); this.EnemyNames = EnemyNames; }
void Start() { Enemy enemy1 = new Enemy(); Enemy enemy2 = new Enemy(); Enemy enemy3 = new Enemy(); int x = Enemy.enemyCount; int soma = Enemy.Add(5, 6); print("Total de inimigos: " + x + " Soma total: " + soma); //Porcausa do static como extensão de método, o this transform como parâmetro, pode ser chamado em qualquer classe transform.ResetTransformation(); }
// 获取怪物所有信息 protected Enemy GetEnemy(string enemyName) { Enemy enemy = new Enemy(); string enemyInfo = ""; foreach (string e in GameConfig.enemy) { enemyInfo += iniTool.IniReadValue(devPath, enemyIni, enemyName, e) + ","; } enemy.Name = enemyName; enemy.Add(enemyInfo); return(enemy); }
public void Update() { if (_number <= 0) { // すべての敵が出現したので何もしない return; } // 経過時間を足し込む _tInterval += Time.deltaTime; if (_tInterval >= _interval) { // インターバルを超えたので敵出現 _tInterval -= _interval; // 敵を生成 Enemy.Add(_pathList); // 敵生成カウンタを減らす _number--; } }
public void Yell(int CurrentState) { Collider[] hitCollider = Physics.OverlapSphere(transform.position, yellRadius); for (int i = 0, l = hitCollider.Length; i < l; ++i) { if (hitCollider[i].CompareTag("Enemy")) { if (hitCollider[i] != Mycollider) { Debug.Log("Le collider " + i + " est : " + hitCollider[i].name + " et sont BeenYelled est à " + hitCollider[i].gameObject.GetComponent <EnemyController>().BeenYelled); Enemy.Add(hitCollider[i]); if (!hitCollider[i].gameObject.GetComponent <EnemyController>().BeenYelled) { hitCollider[i].gameObject.GetComponent <EnemyController>().ChangeState(CurrentState); } } } } BeenYelled = true; }
public void AddEnemy(Unit unit) { Enemy.Add(unit); AllUnits.Add(unit); }
/// 敵の生成 Enemy AddEnemy(int id, float direction, float speed) { return(Enemy.Add(id, X, Y, direction, speed)); }
// Update is called once per frame void Update() { if (moveCameraFlag == true) { mainCamera.transform.position = Vector3.MoveTowards(mainCamera.transform.position, player.transform.position + cameraFollow.offset, Time.deltaTime * 25); if ((mainCamera.transform.position - (player.transform.position + cameraFollow.offset)).sqrMagnitude < 10f) { player.SetStartFlag(true); cameraFollow.enabled = true; moveCameraFlag = false; if (enemyList != null) { foreach (Enemy e in enemyList) { e.SetStartFlag(true); } } } } if (player.GetHp() <= 0) { SceneManager.LoadScene("GameOver"); } if (hostageFlag == true && (player.transform.position - startPos).sqrMagnitude < 2f && (player.transform.position - hostage.transform.position).sqrMagnitude < 5f) { SceneManager.LoadScene("GameClear"); } if (SceneManager.GetActiveScene().name != "Select") { UpdateAlertUIStates(); // プレイヤーに人質が近づいたら人質を連れる if ((player.transform.position - endPos).sqrMagnitude < 3f) { // 警告ステートの場合は人質を救出できない int cnt = 0; foreach (Enemy e in enemyList) { //if (e.GetAttack()) cnt++; if (e.GetStates() == StateType.Danger) { cnt++; } } if (cnt == 0) { hostageFlag = true; dp.SetPurposeText("スタート地点に戻ろう"); // 敵が if (Enemy.parent.Count() < (ENEMY_NUM / 2)) { for (int i = 0; i < ENEMY_NUM / 4; i++) { int enemyNum = Random.Range(1, 3); int ind = 0; for (int j = 0; j < stageList.Count; j++) { // if (stageList[j].id == enemyNum) { ind = j; break; } } //Debug.Log("enemy : " + ind); //Debug.Log(ind + " stageID : " + stageList[ind].id); Enemy e = Enemy.Add(enemyList.Count, stageList[ind].obj.transform.position.x, 1.0f, stageList[ind].obj.transform.position.z, stageList[ind].id, this, pm); var itemObj = Instantiate(itemBox, Vector3.zero, itemBox.transform.rotation); pi = itemObj.GetComponent <PopItem>(); pi.Init(this, e); e.InitMgrTarget(enemyMoveSpeed / 2, player, false, dp, pi); //Debug.Log(stageList[0].obj.transform.position); e.InitilizeShot(); e.InitilizeUI(); e.SetStartFlag(true); enemyList.Add(e); } } } } // プレイヤーの周りにいない敵は描画しない foreach (Enemy e in enemyList) { if ((player.transform.position - e.transform.position).sqrMagnitude < 300f) { e.gameObject.SetActive(true); } else { e.gameObject.SetActive(false); } } } }
void InitilizeEnemy() { // 管理オブジェクトを生成 Enemy.parent = new TokenMgr <Enemy>("Enemy", ENEMY_NUM); Random.InitState(10); int keyFlag = 0; /*===================================================*/ // 敵を生成 enemyList = new List <Enemy>(ENEMY_NUM); for (int i = 0; i < ENEMY_NUM; i++) { int enemyNum = i % (ROOM_NUM)+1; if (i % (ROOM_NUM)+1 == 1 || i % (ROOM_NUM)+1 == ROOM_NUM + 1) { enemyNum = Random.Range(3, ROOM_NUM + 1); } int ind = 0; for (int j = 0; j < stageList.Count; j++) { // if (stageList[j].id == enemyNum) { ind = j; if (stageList[j].id == ROOM_NUM && keyFlag == 0) { keyFlag++; } break; } } // アイテムボックスを生成 if (i % 2 == 0) { Vector3 itemPos = new Vector3(stageList[ind].obj.transform.position.x, 0.0f, stageList[ind].obj.transform.position.z); var obj = Instantiate(itemBox, itemPos, itemBox.transform.rotation); pi = obj.GetComponent <PopItem>(); pi.Init(this, null); } // 敵を生成 Enemy e = Enemy.Add(enemyList.Count, stageList[ind].obj.transform.position.x, 1.0f, stageList[ind].obj.transform.position.z, stageList[ind].id, this, pm); var itemObj = Instantiate(itemBox, Vector3.zero, itemBox.transform.rotation); //itemObj.GetComponent<Renderer>().material.color = new Color(0, 0, 0, 0); pi = itemObj.GetComponent <PopItem>(); pi.Init(this, e); // ショットアイテムとデコイアイテムを生成 /* * if (Random.Range(0,2) == 0) * { * var obj = Instantiate(shotItem, new Vector3(stageList[ind].obj.transform.position.x, 0.0f, stageList[ind].obj.transform.position.z), shotItem.transform.rotation); * } * else * { * var obj = Instantiate(decoyItem, new Vector3(stageList[ind].obj.transform.position.x, 0.0f, stageList[ind].obj.transform.position.z), decoyItem.transform.rotation); * } */ // 敵に鍵持ちのステータスを設定する if (keyFlag == 1) { e.InitMgrTarget(enemyMoveSpeed / 2, player, true, dp, pi); keyFlag++; } else { e.InitMgrTarget(enemyMoveSpeed / 2, player, false, dp, pi); } //Debug.Log(stageList[0].obj.transform.position); e.InitilizeShot(); e.InitilizeUI(); enemyList.Add(e); //InitilizeEffect(e.transform.position, enemyEffect); StartCoroutine(InitilizeEffect(e.transform.position, enemyEffect)); } /*===================================================*/ }