private IEnumerator DOShake(float power = 1.0f, float duration = 1.0f, float shake_interval = 0.05f) { shake_powers_.Insert(-power); float start = Time.time; while ((Time.time - start) < duration) { // もしより震度の大きいものが回っていたらそっちを優先 if (power >= -shake_powers_.ElementAt(0) - 1e-6) { shake_dif.x = Random.Range(-power, power); shake_dif.y = Random.Range(-power, power); } yield return(new WaitForSeconds(shake_interval)); } shake_dif = Vector3.zero; shake_powers_.Remove(-power); }
/// <summary> /// タイムスケールの変更を申請する /// ただし,期間は指定せず,DismissRequestが呼ばれるまで続く /// </summary> /// <param name="time_scale">タイムスケール</param> public void RequestChange(float time_scale) { values_.Insert(time_scale); }