//popに成功したらtrueを返す bool BombPopUp(CharacterArmy _attr) { int num = GetPopSpaceNum(); if (num == NONE) { return(false); } else { Vector3 startVec = Vector3.zero; if (_attr == CharacterArmy.P2) { startVec = p2topLeft; } if (_attr == CharacterArmy.P1) { startVec = p1topLeft; } Vector3 popVec = startVec; popVec.x += bombWidth * num; popVec.y -= Random.Range(0, popMaxHeight); BombPop(popVec, num, _attr); return(true); } }
IEnumerator BombUpdate() { while (true) { //timerのカウントを進める p1CountTimer += Time.deltaTime; p2CountTimer += Time.deltaTime; //timerが規定のタイムを超えていたら爆弾をポップ。どっちもpopする場合は優先度を変える。 if (P1CanPop() && P2CanPop() && preBombArmy == CharacterArmy.P1) { if (P2CanPop()) { BombPopUp(CharacterArmy.P2); preBombArmy = CharacterArmy.P2; p2CountTimer = 0; } if (P1CanPop()) { BombPopUp(CharacterArmy.P1); preBombArmy = CharacterArmy.P1; p1CountTimer = 0; } } else { if (P1CanPop()) { BombPopUp(CharacterArmy.P1); preBombArmy = CharacterArmy.P1; p1CountTimer = 0; } if (P2CanPop()) { BombPopUp(CharacterArmy.P2); preBombArmy = CharacterArmy.P2; p2CountTimer = 0; } //timerが規定のタイムを超えていたら爆弾をポップ if (p1CountTimer >= p1Time) { BombPopUp(CharacterArmy.P1); p1CountTimer = 0; } if (p2CountTimer >= p2Time) { BombPopUp(CharacterArmy.P2); p2CountTimer = 0; } yield return(null); } } }
//引数の場所に爆弾をinstansiateし、引数の番号に入れる void BombPop(Vector3 _pos, int bombArrayNumber, CharacterArmy _attr) { Transform p = null; if (_attr == CharacterArmy.P1) { p = Stage1.transform; var b = Instantiate(bombPre1, _pos, Quaternion.identity, p); bombs[bombArrayNumber] = b; } if (_attr == CharacterArmy.P2) { p = Stage2.transform; var b = Instantiate(bombPre2, _pos, Quaternion.identity, p); bombs[bombArrayNumber] = b; } }