Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
1,902
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class ParticleSea : MonoBehaviour {
  5.  
  6.     public ParticleSystem particleSystem;
  7.     private ParticleSystem.Particle[] particlesArray;
  8.  
  9.     public Gradient colorGradient;
  10.  
  11.     public int seaResolution = 50;
  12.     public float spacing = 0.5f;
  13.     public float noiseScale = 0.1f;
  14.     public float heightScale = 1f;
  15.  
  16.     private float perlinNoiseAnimX = 0.01f;
  17.     private float perlinNoiseAnimY = 0.01f;
  18.  
  19.     void Start() {
  20.         particlesArray = new ParticleSystem.Particle[seaResolution * seaResolution];
  21.         particleSystem.maxParticles = seaResolution * seaResolution;
  22.         particleSystem.Emit(seaResolution * seaResolution);
  23.         particleSystem.GetParticles(particlesArray);
  24.     }
  25.  
  26.     void Update() {
  27.         for(int i = 0; i < seaResolution; i++) {
  28.             for(int j = 0; j < seaResolution; j++) {
  29.                 float zPos = Mathf.PerlinNoise(i * noiseScale + perlinNoiseAnimX, j * noiseScale + perlinNoiseAnimY);
  30.                 particlesArray[i * seaResolution + j].color = colorGradient.Evaluate(zPos);
  31.                 particlesArray[i * seaResolution + j].position = new Vector3(i * spacing, zPos  * heightScale, j * spacing);
  32.             }
  33.         }
  34.  
  35.         perlinNoiseAnimX += 0.01f;
  36.         perlinNoiseAnimY += 0.01f;
  37.  
  38.         particleSystem.SetParticles(particlesArray, particlesArray.Length);
  39.     }
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement