XftSmoothRandom.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using UnityEngine;
  3. namespace Xft
  4. {
  5. public class XftSmoothRandom
  6. {
  7. public static Vector3 GetVector3(float speed)
  8. {
  9. float x = Time.time * 0.01f * speed;
  10. return new Vector3(XftSmoothRandom.Get().HybridMultifractal(x, 15.73f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x, 63.94f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x, 0.2f, 0.58f));
  11. }
  12. public static Vector3 GetVector3Centered(float speed)
  13. {
  14. float x = Time.time * 0.01f * speed;
  15. float x2 = (Time.time - 1f) * 0.01f * speed;
  16. Vector3 a = new Vector3(XftSmoothRandom.Get().HybridMultifractal(x, 15.73f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x, 63.94f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x, 0.2f, 0.58f));
  17. Vector3 b = new Vector3(XftSmoothRandom.Get().HybridMultifractal(x2, 15.73f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x2, 63.94f, 0.58f), XftSmoothRandom.Get().HybridMultifractal(x2, 0.2f, 0.58f));
  18. return a - b;
  19. }
  20. public static float Get(float speed)
  21. {
  22. float num = Time.time * 0.01f * speed;
  23. return XftSmoothRandom.Get().HybridMultifractal(num * 0.01f, 15.7f, 0.65f);
  24. }
  25. private static FractalNoise Get()
  26. {
  27. if (XftSmoothRandom.s_Noise == null)
  28. {
  29. XftSmoothRandom.s_Noise = new FractalNoise(1.27f, 2.04f, 8.36f);
  30. }
  31. return XftSmoothRandom.s_Noise;
  32. }
  33. private static FractalNoise s_Noise;
  34. }
  35. }