public void Start() { Light = this.GetComponent<Light>(); originalIntensity = Light.intensity; var shakeRandoms = this.GetRandoms(Steps, 0.5f, 0.91f); for (int i = 0; i < shakeRandoms.Length; i++) { if (i % 2 == 0) { shakeRandoms[i] = 0; } } lightFlickerer = new ValueTimerSequence<float>(this.GetRandoms(Steps, 0.05f, 0.15f), shakeRandoms); lightFlickerer.DetermineValue = s => s; lightFlickerer.Lerp = (a, b, t) => { return b; }; lightFlickerer.FinishedCallback = () => { Light.intensity = originalIntensity; }; }
void Start() { var shakeRandoms = this.GetRandoms(ShakeSteps, 1f, 359f); for (int i = 0; i < shakeRandoms.Length; i++) { if (i % 2 == 0) { shakeRandoms[i] = 0; } } shakeRandoms[shakeRandoms.Length - 1] = 0; cameraShaker = new ValueTimerSequence<Vector3>(this.GetRandoms(ShakeSteps, 0.02f, 0.05f), shakeRandoms); cameraShaker.DetermineValue = (seed) => { if (seed == 0) return HomePosition; var r = Quaternion.AngleAxis(seed, Vector3.forward); var result = HomePosition + ((r * Vector3.up) * _strength); _strength -= (ShakeStrength * (1f / (float)ShakeSteps)); return result; }; cameraShaker.Lerp = Vector3.Lerp; }