Esempio n. 1
0
 public void SetShakeCurve(ShakeStyle curveStyle)
 {
     AnimationCurve GetStyle(ShakeStyle style) => style switch
     {
         ShakeStyle.WaterFall => _ShakeCurve_WaterFall,
         ShakeStyle.Cliff => _ShakeCurve_Cliff,
         ShakeStyle.Rise => _ShakeCurve_Rise,
         _ => null
     };
     _CrntShakeCurve = GetStyle(curveStyle);
 }
 public void setShake(float freq, float time, float amnt, ShakeStyle shaketype, bool restart = true)
 {
     frequency  = freq;
     maxTime    = time;
     magnitude  = amnt;
     shakestyle = shaketype;
     if (restart)
     {
         timer = 0;
     }
 }
Esempio n. 3
0
    public void CameraShake(float time, float force, ShakeStyle style = ShakeStyle.WaterFall)
    {
        float forcePerFrame = force;
        float ratio         = 1f - Mathf.Min(_RestShakeTime / _ShakeTime, 1f);

        if (_CrntShakeCurve == null)
        {
            _ShakeForcePerFrame = forcePerFrame;
            _RestShakeTime      = _ShakeTime = time;
            SetShakeCurve(style);
            return;
        }
        if (forcePerFrame > _ShakeForcePerFrame * _CrntShakeCurve.Evaluate(ratio))
        {
            _ShakeForcePerFrame = forcePerFrame;
            _RestShakeTime      = _ShakeTime = time;
            SetShakeCurve(style);
        }
        else
        {
            _ShakeForcePerFrame += forcePerFrame;
        }
    }