public void droneshodown(EnemyMoveAction.DroneType droneType) { Debug.Log("ドローン撃墜、残りのドローンは後" + SpawnObject.transform.childCount.ToString()); switch (droneType) { case EnemyMoveAction.DroneType.A: DroneDCount1++; break; case EnemyMoveAction.DroneType.B: DroneDCount2++; break; case EnemyMoveAction.DroneType.C: DroneDCount3++; break; case EnemyMoveAction.DroneType.D: DroneDCount4++; break; case EnemyMoveAction.DroneType.AIRPLANE: AirplaneCount++; break; case EnemyMoveAction.DroneType.BOMBERMECHA: BombermechaCount++; break; } RemainDrone -= 1; if (RemainDrone <= 0) { WaveFinish(); } }
IEnumerator DroneGenerate(GameObject Drone, EnemyMoveAction.DroneType Type, int DroneNumber) { //ドローンの生成 for (int i = 0; i < DroneNumber; i++) { var wavenumber = wave; var x = Random.Range(26.0f, 52.0f); var y = Random.Range(155.0f, 165.0f); var z = Random.Range(-90.0f, -107.0f); var spawnposition = new Vector3(x, y - 5, z); var d = Instantiate(Drone); d.transform.position = spawnposition; d.transform.parent = SpawnObject.transform; d.SetActive(false); d.GetComponent <DroneController>().wavemanager = this; d.GetComponent <DroneController>().type = Type; if (Type == EnemyMoveAction.DroneType.D) { d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("Shield", true); } switch (Type) { case EnemyMoveAction.DroneType.A: d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 0); break; case EnemyMoveAction.DroneType.B: d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 1); break; case EnemyMoveAction.DroneType.C: d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 2); break; case EnemyMoveAction.DroneType.D: d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 4); break; case EnemyMoveAction.DroneType.AIRPLANE: //d.GetComponent<BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 0); break; case EnemyMoveAction.DroneType.BOMBERMECHA: d.GetComponent <BehaviorDesigner.Runtime.Behavior>().SetVariableValue("bulletnumber", 4); break; } yield return(new WaitForSeconds(Random.Range(0, 5 * i))); if (wave == wavenumber) { d.SetActive(true); } else { Destroy(d); } Debug.Log("ドローン生成"); } }
public void DroneShotDown(EnemyMoveAction.DroneType droneType, DroneController drone) { Destroy(drone.gameObject, 0.5f); //ドローン撃墜 Observable.Timer(System.TimeSpan.FromSeconds(1)) .Subscribe(_ => droneshodown(droneType)); }
public void InstantDrone(GameObject Drone, EnemyMoveAction.DroneType Type, int DroneNumber) { StartCoroutine(DroneGenerate(Drone, Type, DroneNumber)); RemainDrone += DroneNumber; }