public void EvaluateRumble_ListenerAtCenter_FullStrength() { var rumbleAsset = ScriptableObject.CreateInstance <RumbleAsset>(); rumbleAsset.Lifetime = 1.0f; var expectedForceFeedback = new ForceFeedbackIntensities(1.0f, 0.7f); var expectedScreenShake = new ScreenShakeIntensities(Vector2.one, 5); rumbleAsset.Intensity = new RumbleIntensity(expectedForceFeedback, expectedScreenShake); CreateAndInitializeRumbleSource(rumbleAsset, 10.0f); var rumble = rumbleSource.EvaluateRumble(rumbleSource.transform.position); Assert.That(rumble.ForceFeedback, Is.EqualTo(expectedForceFeedback)); Assert.That(rumble.ScreenShake, Is.EqualTo(expectedScreenShake)); }
public void EvaluateRumble_ListenerOutOfRange_ZeroRumble() { var rumbleAsset = ScriptableObject.CreateInstance <RumbleAsset>(); rumbleAsset.Lifetime = 1.0f; var expectedForceFeedback = new ForceFeedbackIntensities(1.0f, 0.7f); var expectedScreenShake = new ScreenShakeIntensities(Vector2.one, 5); rumbleAsset.Intensity = new RumbleIntensity(expectedForceFeedback, expectedScreenShake); float sourceRadius = DefaultRadius; CreateAndInitializeRumbleSource(rumbleAsset, sourceRadius); var atEdgeOfRadius = rumbleSource.transform.position + Vector3.one.normalized * (sourceRadius + .01f); var rumble = rumbleSource.EvaluateRumble(atEdgeOfRadius); Assert.That(rumble.ForceFeedback, Is.EqualTo(ForceFeedbackIntensities.Zero)); Assert.That(rumble.ScreenShake, Is.EqualTo(new ScreenShakeIntensities(Vector2.zero, 5))); }
public void EvaluateRumble_ListenerHalfwayLinearFalloff_HalfRumble() { var rumbleAsset = ScriptableObject.CreateInstance <RumbleAsset>(); rumbleAsset.Lifetime = 1.0f; rumbleAsset.Intensity = new RumbleIntensity( new ForceFeedbackIntensities(1.0f, 0.7f), new ScreenShakeIntensities(Vector2.one, 5)); rumbleAsset.CurveDistanceModulator = new CurveDistanceModulator( AnimationCurve.Linear(0.0f, 1.0f, 1.0f, 0.0f)); float sourceRadius = DefaultRadius; CreateAndInitializeRumbleSource(rumbleAsset, sourceRadius); var expectedForceFeedback = new ForceFeedbackIntensities(0.5f, 0.35f); var expectedScreenShake = new ScreenShakeIntensities(new Vector2(0.5f, 0.5f), 5); var halfRadiusFromSource = rumbleSource.transform.position + Vector3.one.normalized * sourceRadius * 0.5f; var rumble = rumbleSource.EvaluateRumble(halfRadiusFromSource); Assert.That(rumble.ForceFeedback, Is.EqualTo(expectedForceFeedback)); Assert.That(rumble.ScreenShake, Is.EqualTo(expectedScreenShake)); }