private IEnumerator DelayMethod() { for (var i = _listSize - 1; i >= 0; i--) { _block = _gamemanager.GetAndRemoveList(); //最後尾のブロック要素をオブジェクトに保存 Vector2 position = _block.transform.position; //そのブロックの座標を取ってくる Destroy(_block); //ブロックは消す //配置する座標を設定 Vector3 placePosition = position; //配置する回転角を設定 var q = Quaternion.identity; //配置 var obj = Instantiate(boomPrefab, placePosition, q); bombSE.Play(); if (i != 0 && i == _listSize - 4)//4匹目が爆発するときにズームアウトと減速 { SubCamera.SetActive(true); cameraManager.CameraZoomOut(); Destroy(obj, 0.5F); yield return(new WaitForSeconds(0.1F)); } else if (i < _listSize - 4)//4匹以上が爆発するときは減速 { Destroy(obj, 0.5F); yield return(new WaitForSeconds(0.1F)); } else//それ以外は普通速度 { Destroy(obj, 1.0F); yield return(new WaitForSeconds(0.8F));//ここで一回この関数やめる。0.8秒後にここに戻ってきて続きをし始める。 } } //ここで全部爆破し終わっている yield return(new WaitForSeconds(1)); var resultBoard = Utility.InstantiateGetComponent <ResultBoard>(null, ResultBoard); var rank = (int)(_height / 5f); var next = 5f - (_height % 5f); resultBoard.SetScore((int)_height, rank, next); soundManager.StartResult(); }