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