/// <summary> /// バルーン生成メソッド /// </summary> /// <returns></returns> protected IEnumerator GenerateBallon() { if (!isFirstGenerateBallon) { isFirstGenerateBallon = true; Debug.Log("ゲームスタート"); startChecker.SetInitialSpeed(); } //風船MAX時は処理しない if (ballons[1] != null) { yield break; } isGenerating = true; if (ballons[0] == null) { ballons[0] = Instantiate(ballonPrefab, ballonTran[0]); ballons[0].GetComponent <Ballon>().SetUpBallon(this); } else { ballons[1] = Instantiate(ballonPrefab, ballonTran[1]); ballons[1].GetComponent <Ballon>().SetUpBallon(this); } //風船生成ディレイ yield return(new WaitForSeconds(generateTime)); isGenerating = false; }
/// <summary> /// バルーン生成 /// </summary> /// <returns></returns> private IEnumerator GenerateBallon() { // すべての配列の要素にバルーンが存在している場合には、バルーンを生成しない if (ballons[1] != null) { yield break; } // 生成中状態にする isGenerating = true; // isFirstGenerateBallon変数の値がfalse = まだバルーンを1回も生成していないなら if (isFirstGenerateBallon == false) { // 初回バルーン生成を行ったと判断し、trueに変更する = 次回以降はバルーンを生成してもこの処理には入らない isFirstGenerateBallon = true; Debug.Log("初回のバルーン生成"); // startChecker変数に代入されているStartCheckerスクリプトにアクセスして、SetInitialSpeedメソッドを実行 startChecker.SetInitialSpeed(); } // 1つめの配列の要素が空なら if (ballons[0] == null) { // 1つ目のバルーン生成を生成して、1番目の配列へ代入 ballons[0] = Instantiate(ballonPrefab, ballonTrans[0]); // ふくらむ ballons[0].GetComponent <Ballon>().SetUpBallon(this); } else { // 2つ目のバルーン生成を生成して、2番目の配列へ代入 ballons[1] = Instantiate(ballonPrefab, ballonTrans[1]); // ふくらむ ballons[1].GetComponent <Ballon>().SetUpBallon(this); } // 生成時間分待機 yield return(new WaitForSeconds(generateTime)); // 生成中状態終了 isGenerating = false; }
/// <summary> /// バルーン生成 /// </summary> /// <returns></returns> private IEnumerator GenerateBallon() { //すべての配列の要素にバルーンが存在している場合には、バルーンを生成しない if (ballons[1] != null) { yield break; } //生成中状態にする isGenerating = true; //isFirstGenerateBallon変数の値がfalse(初回バルーン未生成) if (isFirstGenerateBallon == false) { //初回バルーンを生成を行ったとし、trueに変更する。 //(次回以降はバルーンを生成しても、if文の条件を満たさなくなり、この処理には入らない) isFirstGenerateBallon = true; Debug.Log("初回バルーン生成"); //startChecker変数に代入されているStartCheckerスクリプトにアクセスして、SetInitialSpeedメソッドを実行する startChecker.SetInitialSpeed(); } //1つめの配列の要素が空なら if (ballons[0] == null) { //1つめ目のバルーンを生成して、1番目の配列へ代入 ballons[0] = Instantiate(ballonPrefab, ballonTrans[0]); ballons[0].GetComponent <Ballon>().SetUpBallon(this); } else { //2つ目のバルーンを生成して、2番目の配列へ代入 ballons[1] = Instantiate(ballonPrefab, ballonTrans[1]); ballons[1].GetComponent <Ballon>().SetUpBallon(this); } //生成時間分待機 yield return(new WaitForSeconds(generateTime)); //生成中状態終了。再度生成できるようにする isGenerating = false; }
/// <summary> /// バルーン生成 /// </summary> /// <param name="ballonCount">生成するバルーンの数</param> /// <param name="waitTime">1つ生成する際の生成にかかる時間</param> /// <returns></returns> private IEnumerator GenetateBallon(int ballonCount, float waitTime) { // バルーンの最大値の場合にはバルーンを生成しない if (ballonList.Count >= maxBallonCount) { yield break; } // 生成中状態にする isGenerating = true; anim.SetBool("Idel", false); anim.SetTrigger("Generate"); // まだ1回もバルーンを生成していないなら if (isFirstGenerateBallon == false) { // 初回のバルーン生成済にする isFirstGenerateBallon = true; // StartChecker スクリプトが代入されている startChecker 変数を利用して、SetInitialSpeed メソッドを実行する startChecker.SetInitialSpeed(); } for (int i = 0; i < ballonCount; i++) { Ballon ballon; // 1つ目のバルーンの生成位置にバルーンがない場合 if (ballonTrans[0].childCount == 0) { // 1つ目のバルーン生成 ballon = Instantiate(BallonPrefab, ballonTrans[0]); // 1つ目のバルーンの生成位置にバルーンがある場合 } else { // 2つ目のバルーン生成 ballon = Instantiate(BallonPrefab, ballonTrans[1]); } //if (ballonList.Count == 0) { // // 1つ目のバルーン生成 // ballon = Instantiate(BallonPrefab, ballonTrans[0]); //} else { // // 2つ目のバルーン生成 // ballon = Instantiate(BallonPrefab, ballonTrans[1]); //} // バルーンの設定 ballon.SetUpBallon(this); ballonList.Add(ballon); yield return(new WaitForSeconds(waitTime)); } // バルーンの数で重力を変化 ChangeLinearDrag(); // 生成中状態終了。再度生成できるようにする isGenerating = false; //anim.SetBool("Idel", true); }