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> /// 申請したタイムスケールを破棄する /// </summary> /// <param name="time_scale">前回に登録したタイムスケール</param> public void DismissRequest(float time_scale) { values_.Remove(time_scale); }