FalloffGenerator.cs 620 B

12345678910111213141516171819202122232425262728
  1. using UnityEngine;
  2. using System.Collections;
  3. public static class FalloffGenerator {
  4. public static float[,] GenerateFalloffMap(int size) {
  5. float[,] map = new float[size,size];
  6. for (int i = 0; i < size; i++) {
  7. for (int j = 0; j < size; j++) {
  8. float x = i / (float)size * 2 - 1;
  9. float y = j / (float)size * 2 - 1;
  10. float value = Mathf.Max (Mathf.Abs (x), Mathf.Abs (y));
  11. map [i, j] = Evaluate(value);
  12. }
  13. }
  14. return map;
  15. }
  16. static float Evaluate(float value) {
  17. float a = 3;
  18. float b = 2.2f;
  19. return Mathf.Pow (value, a) / (Mathf.Pow (value, a) + Mathf.Pow (b - b * value, a));
  20. }
  21. }