Пример #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>
 /// タイムスケールの変更を申請する
 /// ただし,期間は指定せず,DismissRequestが呼ばれるまで続く
 /// </summary>
 /// <param name="time_scale">タイムスケール</param>
 public void RequestChange(float time_scale)
 {
     values_.Insert(time_scale);
 }