private void SpawnEnemy() { enemyToSpawn = enemies[Random.Range(0, enemies.Length)]; GetFreeSnapPoints(); if (freeSnapPoints.Count == 0) { return; } enemyToSpawn = Instantiate(enemyToSpawn, GetSpawnPosition(), Quaternion.identity); enemyToSpawn.CurrentSnapPoint = tempSnapPoints; enemyToSpawn.OnDeatForQuest += quest.CheckQuests; enemiesMover.AddEnemy(enemyToSpawn); combat.AddEnemy(enemyToSpawn); }
protected override void OnOpen(params object[] args) { battleInfo = args[0] as BattleBeginReceive; stageInfo = Entity.Instance.StageInfo; // 敵配置 for (int i = 0; i < battleInfo.enemies.Length; i++) { var enemy = Instantiate(enemyUnitPrefab, enemiesArea.transform); enemy.name = enemy.name.Replace("(Clone)", ""); var unit = enemy.GetComponent <Unit>(); unit.Setup(battleInfo.enemies[i]); combat.AddEnemy(unit); units.Add(unit); } // 自分のユニット配置 for (int i = 0; i < stageInfo.pets.Length; i++) { var item = Entity.Instance.PetList.Find(stageInfo.pets[i]); if (item != null) { var pet = Instantiate(playerUnitPrefab, playersArea.transform); pet.name = pet.name.Replace("(Clone)", ""); var unit = pet.GetComponent <Unit>(); unit.Setup(item); combat.AddPlayer(unit); units.Add(unit); } } Observer.Instance.Subscribe(Combat.StartEvent, OnSubscribe); Observer.Instance.Subscribe(Combat.TurnEvent, OnSubscribe); Observer.Instance.Subscribe(Combat.MoveEvent, OnSubscribe); Observer.Instance.Subscribe(Combat.PlayEvent, OnSubscribe); Observer.Instance.Subscribe(Combat.ResultEvent, OnSubscribe); combat.Next(); base.OnOpen(args); }