static void PermutePlanet(Material mat, ref PlanetColorData planetColorData) { mat.SetColor("_Color", planetColorData.baseColor); mat.SetColor("_BaseLayerColor", planetColorData.baseLayerColor); mat.SetColor("_Add0LayerColor", planetColorData.addLayerColor); mat.SetColor("_AtmosphereColor", planetColorData.atmosphereColor); PermutePram(mat, "_Scale", scalePercentVariance); PermutePram(mat, "_Squish", squishPercentVariance); PermutePram(mat, "_Density", densityPercentVariance); PermutePram(mat, "_DistortionScale", distortionScalePercentVariance); PermutePram(mat, "_Distortion", distortionPercentVariance); PermutePram(mat, "_AtmosphereInflate", atmoSizePercentVariance); PermutePram(mat, "_AtmosphereFalloff", atmoFalloffPercentVariance); }
void RandomizePlanet() { planetMat.SetVector("_RandomOffsets", GetRandomOffset()); // calculate random rotation float xAngle = 0; // Random.value * maxPlanetAngleFromBottom; float yAngle = Random.value * 360f; planetAnchor.rotation = Quaternion.Euler(xAngle, yAngle, 0); float planetScale = GetVariedValue(1f, overallSizePercentVariance); planetAnchor.localScale = new Vector3(planetScale, 1, planetScale); PlanetColorData colorData = planetDatas[Random.Range(0, planetDatas.Length)]; PermutePlanet(planetMat, ref colorData); }