10 public const float MinScaleMultiplier = 0.05f;
11 public const float MaxScaleMultiplier = 1f;
12 public const float MinSpeedMultiplier = -25f;
13 public const float MaxSpeedMultiplier = 25f;
14 public const float MinStrengthMultiplier = 0.00001f;
15 public const float MaxStrengthMultiplier = 1f;
17 const float GlobalScale = 0.1f;
19 [Range(MinScaleMultiplier, MaxScaleMultiplier)]
20 public float ScaleMultiplier = 0.1f;
21 [Range(MinSpeedMultiplier, MaxSpeedMultiplier)]
22 public float SpeedMultiplier = 3f;
23 [Range(MinStrengthMultiplier, MaxStrengthMultiplier)]
24 public float StrengthMultiplier = 0.01f;
25 public Vector3 AxisStrength =
new Vector3(0.5f, 0.1f, 0.5f);
26 public Vector3 AxisSpeed =
new Vector3(0.2f, 0.5f, 0.7f);
27 public Vector3 AxisOffset =
new Vector3(0.2f, 0.5f, 0.7f);
31 Vector3 wiggly = point;
32 float scale = ScaleMultiplier * GlobalScale;
33 wiggly.x = Wiggle(AxisSpeed.x * SpeedMultiplier, (wiggly.x + AxisOffset.x) / scale, AxisStrength.x * StrengthMultiplier);
34 wiggly.y = Wiggle(AxisSpeed.y * SpeedMultiplier, (wiggly.y + AxisOffset.y) / scale, AxisStrength.y * StrengthMultiplier);
35 wiggly.z = Wiggle(AxisSpeed.z * SpeedMultiplier, (wiggly.z + AxisOffset.z) / scale, AxisStrength.z * StrengthMultiplier);
36 return point + (wiggly * strength);
44 private float Wiggle(
float speed,
float offset,
float strength)
46 return Mathf.Sin((Time.unscaledTime * speed) + offset) * strength;