public void RemoveScreenshakeParameters(ScreenshakeParameters parameters) { if (currentScreenshakeParameters.Contains(parameters)) { currentScreenshakeParameters.Remove(parameters); } }
public static ScreenshakeParameters Lerp(ScreenshakeParameters min, ScreenshakeParameters max, float coeff) { float force = Mathf.Lerp(min.force, max.force, coeff); float duration = Mathf.Lerp(min.duration, max.duration, coeff); float attenuation = Mathf.Lerp(min.attenuationCoeff, max.attenuationCoeff, coeff); return(new ScreenshakeParameters(force, duration, attenuation, max.type)); }
public ScreenshakeParameters GetExplosionScreenshakeParameters(float explosionSize) { float coeff = Mathf.Clamp((explosionSize - minExplosionRefValue) / (maxExplosionRefValue - minExplosionRefValue), 0, 1); return(ScreenshakeParameters.Lerp(minExplosionScreenshakeParameters, maxExplosionScreenshakeParameters, coeff)); }
/// <summary> /// Call this method to start a screenshake with the inputed parameters /// </summary> /// <param name="parameters">The parameters of the screenshake that is going to start</param> public void StartScreenshake(ScreenshakeParameters parameters) { ScreenshakeParameters newParam = new ScreenshakeParameters(parameters.Force, parameters.Duration, parameters.Attenuation, parameters.Type); AddScreenshakeParameters(newParam); }
public void AddScreenshakeParameters(ScreenshakeParameters parameters) { currentScreenshakeParameters.Add(parameters); }