//ボールの初期化 public void initializa() { //キャラクターの登録 pic.CharaList.Add(_myBall); Random random = new Random(); //敵キャラの登録 for (int i = 0; i < 2; i++) { //ランダムに動かす int x = random.Next(100, pic.Width - 100); int y = random.Next(100, pic.Height - 100); //方向をランダムにする //?は条件演算子 //0のdx,dyが0の場合-1を返して、それ以外の場合は1を返す int dx = random.Next(0, 2) == 0 ? -1 : 1; int dy = random.Next(0, 2) == 0 ? -1 : 1; EnemyBall enemyball = (new EnemyBall(x, y, dx, dy)); //描画用ピクチャーボックスに登録 pic.CharaList.Add(enemyball); //あたり判定リストに敵を追加 _EnemyBallList.Add(enemyball); } }
// Use this for initialization void Start() { enemyCtrl.setHP(hp, hp); IsAnime = false; ball = new EnemyBall(enemyBall); ball.speed = ballSpeed; enemyCtrl.dir = 1; }
/// <summary> /// 敵を生成 // 変更なしですが記載します /// </summary> /// <returns></returns> private IEnumerator GenerateEnemys() { // 生成する敵の数をランダムで設定 int appearEnemyCount = Random.Range(2, 5); // 生成した数をカウント用 int count = 0; // 生成した数が生成数になるまでループする。目標数になったら生成終了し、ループを抜ける while (count < appearEnemyCount) { // Transform情報を代入 Transform enemyTran = canvasTran; // 位置を画面内に収まる範囲でランダムに設定 enemyTran.position = new Vector2(Random.Range(leftBottomTran.localPosition.x, rightTopTran.localPosition.x), Random.Range(leftBottomTran.localPosition.y, rightTopTran.localPosition.y)); // 設定した位置に対してRayを発射 RaycastHit2D hit = Physics2D.Raycast(enemyTran.position, Vector3.forward); // Rayに当たったオブジェクトを表示。何もないときは null Debug.Log(hit.collider); // もしも何もRayに当たらない場合(Rayに何か当たった場合にはその位置には生成しないので、ループの最初からやり直す) if (hit.collider == null) { // 敵を生成 EnemyBall enemyBall = Instantiate(enemyBallPrefab, canvasTran, false); // 親子関係を設定 enemyBall.transform.SetParent(enemyPlace); // 敵の位置をランダムで設定した位置に設定 enemyBall.transform.localPosition = enemyTran.position; // 敵の初期設定 enemyBall.SetUpEnemyBall(this, canvasTran); // 敵の生成カウントを加算 count++; // 敵の管理リストに追加 enemyBallList.Add(enemyBall); // 少し待機して、ループを最初から繰り返す yield return(new WaitForSeconds(0.15f)); } } }
void OnTriggerEnter(Collider other) { if (other.tag.CompareTo("EnemyBall") == 0) { EnemyBall enemyBall = other.GetComponent <EnemyBall>(); if (enemyBall != null) { // m_life-=ball.m_power; // if(m_life<=0){ // Destroy(this.gameObject); // } Destroy(this.gameObject); } } }
//Fait apparaitre une balle ennemi a chaque 100f IEnumerator EnemyShot() { if (m_Timer == 100f) { GameObject ballGO; ballGO = GameObject.Instantiate(m_ObjectToSpawn, transform.position, Quaternion.identity); EnemyBall ball = ballGO.GetComponent <EnemyBall>(); ball.Shoot(transform.forward); m_Timer = 0f; } m_Timer += 1f; yield return(new WaitForSeconds(1f)); }
void Awake() { myBody = GetComponent <Rigidbody> (); enemyBall = GetComponent <EnemyBall> (); myRenderer = GetComponent <MeshRenderer> (); }
/// <summary> /// 敵をリストから削除 // 変更なしですが記載します /// </summary> /// <param name="enemy"></param> public void RemoveEnemyList(EnemyBall enemy) { //RemoveEnemyList(enemy); enemyBallList.Remove(enemy); CheckRemainingEnemies(); }