IEnumerator Launch() { startTime = Time.time; specData.Recalculation(); //Debug.Log(specData.GetMass()); RocketBody2D.mass = specData.GetMass(); timeTemp = 0.0f; thrustForce = specData.GetThrustForce(); thrustTime = specData.GetBurningTime(); RocketBody2D.gravityScale = specData.GetGravity() / 9.8f; ScoreData.AddLaunchNumber(); WaterJet.SetActive(true); // Debug.Log(startTime); Vector3 ScaleW = Water.transform.localScale; float posTemp = 0.0f; float posMax = ScaleW.y; WaterJetSound.PlayOneShot(WaterJetSound.clip); if (LancherForce > 0.0f) { //RocketBody2D.AddForce(RocketBody2D.transform.up * LancherForce, ForceMode2D.Impulse); StartCoroutine("LauncherAddForce"); LancherForce = 0.0f; } while (thrustTime >= timeTemp) { timeTemp = Time.time - startTime; // ロケット発射 RocketBody2D.AddForce(RocketBody2D.transform.up * thrustForce); posTemp = posMax * (thrustTime - timeTemp) / thrustTime; ScaleW.y = posTemp; Water.transform.localScale = ScaleW; yield return(null); // } // メインエンジン燃焼終了後 WaterJet.SetActive(false); if (Stage >= 1) // 多段式でまだ残っていたら、燃料再充填 { ScaleW.y = posMax; Water.transform.localScale = ScaleW; } else { ScaleW.y = 0.0f; Water.transform.localScale = ScaleW; } }