private void ScheduleShake(Magnitude _magnitude = Magnitude.Medium, EndingMagnitude endingMagnitude = EndingMagnitude.Fourth, int numberOfShakes = 1) { if (camera != null) { remainingShakes = numberOfShakes; magnitude = (float)_magnitude * 0.005f; int numberOfDegradationsPerSingleShake = 2; float endingMagnitudeFloat = (float)((float)endingMagnitude * 0.005f) * magnitude; float totalMagnitudeToDegrade = magnitude - endingMagnitudeFloat; degradationPerShake = totalMagnitudeToDegrade / ((numberOfDegradationsPerSingleShake * remainingShakes) - 1); PerformSingleShake(); } }
public void ShakeForDuration(Magnitude _magnitude = Magnitude.Small, float duration = 5.0f, EndingMagnitude endingMagnitude = EndingMagnitude.Fourth) { isShakeForever = false; int numberOfShakes = (int)(duration / durationPerShake); ScheduleShake(_magnitude, endingMagnitude, numberOfShakes); }
public void Shake(Magnitude _magnitude = Magnitude.Medium, EndingMagnitude endingMagnitude = EndingMagnitude.Fourth) { Stop(); isShakeForever = false; ScheduleShake(_magnitude, endingMagnitude, 1); }