コード例 #1
0
ファイル: MainCamera.cs プロジェクト: kimbokChi/AngelMayCry
 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);
 }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
ファイル: MainCamera.cs プロジェクト: kimbokChi/AngelMayCry
    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;
        }
    }