Ramaraunt1

rockgenfail

Dec 30th, 2016
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. public class rockRandomizer : MonoBehaviour {
  6.  
  7. public int seed = 37823787;
  8. private Material mat;
  9. private List<Vector3> vertices = new List<Vector3>();
  10. private Vector3 center;
  11.  
  12. void Start()
  13. {
  14. Random.InitState(seed);
  15. float offset = Random.Range(0, 999999);
  16.  
  17. Mesh mesh = GetComponent<MeshFilter>().mesh;
  18.  
  19. for (int s = 0; s < mesh.vertices.Length; s ++)
  20. {
  21. vertices.Add(mesh.vertices[s]);
  22. }
  23.  
  24. float[] heights = new float[vertices.Count];
  25. for (int k = 0; k < vertices.Count; k ++)
  26. {
  27. heights[k] = Mathf.PerlinNoise(offset + (k * 5), offset + (k * 5));
  28. }
  29.  
  30. center = GetComponent<Renderer>().bounds.center;
  31.  
  32. for (int v = 0; v < vertices.Count; v ++)
  33. {
  34. Vector3 dir = Vector3.Normalize(vertices[v] - center);
  35. Debug.Log(dir);
  36.  
  37.  
  38. vertices[v] = new Vector3(vertices[v].x + (heights[v] * dir.x), vertices[v].y + (heights[v] * dir.y), vertices[v].z + (heights[v] * dir.z));
  39.  
  40.  
  41. }
  42.  
  43. mesh.SetVertices(vertices);
  44. mesh.RecalculateBounds();
  45. mesh.RecalculateNormals();
  46.  
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment