Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public class rockRandomizer : MonoBehaviour {
- public int seed = 37823787;
- private Material mat;
- private List<Vector3> vertices = new List<Vector3>();
- private Vector3 center;
- void Start()
- {
- Random.InitState(seed);
- float offset = Random.Range(0, 999999);
- Mesh mesh = GetComponent<MeshFilter>().mesh;
- for (int s = 0; s < mesh.vertices.Length; s ++)
- {
- vertices.Add(mesh.vertices[s]);
- }
- float[] heights = new float[vertices.Count];
- for (int k = 0; k < vertices.Count; k ++)
- {
- heights[k] = Mathf.PerlinNoise(offset + (k * 5), offset + (k * 5));
- }
- center = GetComponent<Renderer>().bounds.center;
- for (int v = 0; v < vertices.Count; v ++)
- {
- Vector3 dir = Vector3.Normalize(vertices[v] - center);
- Debug.Log(dir);
- 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));
- }
- mesh.SetVertices(vertices);
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment