public static GameObject CreateAsteroid(Vector3 _position) { GameObject asteroidObject = new GameObject("Asteroid"); asteroidObject.transform.position = _position; //planetObject.transform.parent = transform; //newPlanet.AddComponent<Planet> (); int size = Random.Range(2, 4); asteroidObject.transform.localScale = new Vector3(size, size, size); /// planet = newPlanet.GetComponent<Planet> (); int pixWidth = 18; int pixHeight = 18; int scale = 1; float xOrg = 0; float yOrg = 0; int _seed = Random.Range(0, 500); //planetMesh = SolarBodyGeneration.GetSphereMesh (); asteroidObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.RandomisedIcoSphere(); MeshRenderer mr = asteroidObject.AddComponent <MeshRenderer> (); mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetBarrenColour()); return(asteroidObject); }
public static GameObject CreateMoon() { GameObject moonObject = new GameObject("Moon"); //moonObject.transform.position = MoonPoint(0) + planetObject.transform.position; float sizeM = Random.Range(0.5f, 2.0f); moonObject.transform.localScale = new Vector3(sizeM, sizeM, sizeM); //moonObject.transform.parent = planetObject.transform; //newPlanet.AddComponent<Planet> (); /// planet = newPlanet.GetComponent<Planet> (); int pixWidthM = 128; int pixHeightM = 128; int scaleM = 4; float xOrgM = 0; float yOrgM = 0; int seedM = Random.Range(0, 999); //planetMesh = SolarBodyGeneration.GetSphereMesh (); moonObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh(); MeshRenderer mr = moonObject.AddComponent <MeshRenderer> (); mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidthM, pixHeightM, scaleM, xOrgM, yOrgM, seedM, PlanetColour.GetPlanetColour((PlanetType)Random.Range(0, 15))); return(moonObject); }
public static GameObject CreateAnomaliPoint() { GameObject newPoint = new GameObject("AnomaliPoint"); newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh(); newPoint.AddComponent <MeshRenderer> (); return(newPoint); }
public static GameObject CreateCloud() { GameObject cloudObject = new GameObject("Cloud"); //cloudObject.transform.position = planetObject.transform.position; //cloudObject.transform.parent = planetObject.transform; //cloudObject.AddComponent<Clouds> (); cloudObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh(); cloudObject.transform.localScale = new Vector3(1.03f, 1.03f, 1.03f); int pixWidthC = 128; int pixHeightC = 128; int scaleC = 10; float xOrgC = Random.Range(0, 999.9f); float yOrgC = Random.Range(0, 999.9f); cloudObject.AddComponent <MeshRenderer> (); //r = gameObject.GetComponent<MeshRenderer> (); //noiseTex = new Texture2D (pixWidth, pixHeight); //pix = new Color[noiseTex.width * noiseTex.height]; //r.material.mainTexture = noiseTex; //NewCloud (_scale,_rotationSpeed); MeshRenderer mr = cloudObject.GetComponent <MeshRenderer> (); mr.material.mainTexture = Noise.CalculatePerlinNoise(pixWidthC, pixHeightC, scaleC, xOrgC, yOrgC, PlanetColour.GetCloudColour()); mr.material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); mr.material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); mr.material.SetInt("_ZWrite", 0); mr.material.DisableKeyword("_ALPHATEST_ON"); mr.material.EnableKeyword("_ALPHABLEND_ON"); mr.material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); mr.material.renderQueue = 3000; return(cloudObject); }
public static GameObject CreatePlanet(Vector3 _position, int _seed, PlanetType _planetType) { GameObject planetObject = new GameObject("Planet"); planetObject.transform.position = _position; //planetObject.transform.parent = transform; //newPlanet.AddComponent<Planet> (); int size = Random.Range(3, 10); planetObject.transform.localScale = new Vector3(size, size, size); /// planet = newPlanet.GetComponent<Planet> (); int pixWidth = 256; int pixHeight = 256; int scale = 6; float xOrg = 0; float yOrg = 0; //planetMesh = SolarBodyGeneration.GetSphereMesh (); planetObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh(); MeshRenderer mr = planetObject.AddComponent <MeshRenderer> (); mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetPlanetColour(_planetType)); // if (_planetType == PlanetType.Molten) { // planetObject.GetComponent<MeshRenderer> ().material.EnableKeyword ("_EMISSION"); // planetObject.GetComponent<MeshRenderer> ().material.SetTexture ("_EmissionMap", Noise.CalculateSeamlessNoise (pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetPlanetColour (_planetType))); // planetObject.GetComponent<MeshRenderer> ().material.SetColor ("_EmissionColor", new Color(0.5f,0.5f,0.5f)); // planetObject.GetComponent<MeshRenderer> ().material.SetFloat ("_Metallic", 1); // planetObject.GetComponent<MeshRenderer> ().material.SetFloat ("_Glossiness", 1); // } if (_planetType != PlanetType.Molten) { //cloud = new Clouds[numberOfCloudLayers]; } return(planetObject); }
public static GameObject CreateStar(Vector3 _position, int _seed, StarType _starType) { GameObject starObject = new GameObject("Star"); starObject.transform.position = _position; //planetObject.transform.parent = transform; //newPlanet.AddComponent<Planet> (); int size = Random.Range(20, 30); starObject.transform.localScale = new Vector3(size, size, size); /// planet = newPlanet.GetComponent<Planet> (); int pixWidth = 256; int pixHeight = 256; int scale = 6; float xOrg = 0; float yOrg = 0; //planetMesh = SolarBodyGeneration.GetSphereMesh (); starObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh(); MeshRenderer mr = starObject.AddComponent <MeshRenderer> (); //StarType st = (StarType)Random.Range (0, 6); mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, StarColour.GetStarColour(_starType)); mr.material.EnableKeyword("_EMISSION"); mr.material.SetTexture("_EmissionMap", Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, StarColour.GetStarColour(_starType))); mr.material.SetColor("_EmissionColor", Color.white); return(starObject); }
public StarSystemGenerator.StarSystemInfo GenerateSystem(StarSystem _starSystem, bool _active) { GameObject newSystem = StarSystemGenerator.CreateSystem(_starSystem.seed); newSystem.transform.parent = transform; //StarSystemGenerator.CreateSystemEdgeRing (seed).transform.parent = transform.GetChild(1); for (int i = 0; i < _starSystem.anomaliEvent.Length; i++) { GameObject newPoint = new GameObject("Anomali Event"); newPoint.transform.parent = newSystem.transform; newPoint.transform.localScale = new Vector3(2, 2, 2); newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh(); newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint.GetComponent <MeshRenderer> ().material.color = Color.white; GameObject newPoint2 = new GameObject(); newPoint2.transform.parent = newPoint.transform; newPoint2.transform.rotation = new Quaternion(-180, 0, 0, 0); newPoint2.transform.position = new Vector3(0, 6, 0); newPoint2.transform.localScale = new Vector3(2, 2, 2); newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh(); newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint2.GetComponent <MeshRenderer> ().material.color = Color.white; //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed); //newPos.y = 25; newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "EventPoint"; newPoint.AddComponent <SphereCollider> (); newPoint.AddComponent <EventPoint> ().eventNumber = i; newPoint.GetComponent <EventPoint> ().eventListNumber = Random.Range(0, 23); } if (_starSystem.mainEvent) { GameObject newPoint = new GameObject("Main Event"); newPoint.transform.parent = newSystem.transform; newPoint.transform.localScale = new Vector3(2, 2, 2); newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh(); newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint.GetComponent <MeshRenderer> ().material.color = Color.yellow; GameObject newPoint2 = new GameObject(); newPoint2.transform.parent = newPoint.transform; newPoint2.transform.rotation = new Quaternion(-180, 0, 0, 0); newPoint2.transform.position = new Vector3(0, 6, 0); newPoint2.transform.localScale = new Vector3(2, 2, 2); newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh(); newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint2.GetComponent <MeshRenderer> ().material.color = Color.yellow; //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed); //newPos.y = 25; //newPoint.transform.position = newPos; newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "MainEventPoint"; newPoint.AddComponent <SphereCollider> (); } if (_starSystem.trader) { GameObject newPoint = new GameObject("Trader"); newPoint.transform.parent = newSystem.transform; GameObject ob = Instantiate(traderGameObject [Random.Range(0, traderGameObject.Length)], new Vector3(0, -12, 0), traderGameObject [Random.Range(0, traderGameObject.Length)].transform.rotation, newPoint.transform); newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "Trader"; newPoint.AddComponent <SphereCollider> (); } if (_starSystem.researchOutpost) { GameObject newPoint = new GameObject("Research Outpost"); newPoint.transform.parent = newSystem.transform; GameObject ob = Instantiate(researchGameObject [Random.Range(0, researchGameObject.Length)], new Vector3(0, -12, 0), researchGameObject [Random.Range(0, researchGameObject.Length)].transform.rotation, newPoint.transform); newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "ResearchOutpost"; newPoint.AddComponent <SphereCollider> (); } Vector3 particlePosition = Random.insideUnitSphere * 200; particlePosition.y = Random.Range(-350, -500); ps [1].transform.position = particlePosition; ParticleSystem.MainModule mainP = ps [1].main; mainP.startColor = new ParticleSystem.MinMaxGradient(NebulaColour.GetColour(Random.Range(0, 4))); for (int i = 0; i < ps.Length; i++) { ps[i].Stop(); ps[i].Clear(); ps[i].randomSeed = (uint)Random.Range(0, 99999); ps[i].Play(); } newSystem.SetActive(_active); return(StarSystemGenerator.GetStarSystemInfo(_starSystem.seed)); }
//public int numberOfSystems; public static GameObject CreateGalaxy(out StarSystem[] starSystem, int numberOfSystems) { GameObject newGalaxy = new GameObject("Galaxy"); starSystem = new StarSystem[numberOfSystems]; for (int i = 0; i < starSystem.Length; i++) { int[] ae = new int[Random.Range(0, 3)]; for (int e = 0; e < ae.Length; e++) { ae [e] = Random.Range(0, 3); } bool me = false; if (i < 10) { me = true; } bool t = false; if (Random.Range(0, 100) < 50) { t = true; } bool ro = false; if (Random.Range(0, 100) < 50) { ro = true; } starSystem [i] = new StarSystem(Random.Range(0, 10000000), ae, me, t, ro); GameObject newSystemPoint = new GameObject("SystemPoint"); newSystemPoint.transform.parent = newGalaxy.transform; newSystemPoint.transform.position = new Vector3((20 * (i)), 0, 0); newSystemPoint.transform.localScale = new Vector3(4, 4, 4); newSystemPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh(); MeshRenderer mr = newSystemPoint.AddComponent <MeshRenderer> (); newSystemPoint.AddComponent <SphereCollider> ().radius = 1; newSystemPoint.AddComponent <SystemPoint> ().SetStarSystem(i); newSystemPoint.tag = "SystemPoint"; int pixWidth = 16; int pixHeight = 16; int scale = 1; float xOrg = 0; float yOrg = 0; StarType st = StarSystemGenerator.GetStarSystemInfo(starSystem[i].seed).starType; mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, starSystem[i].seed, StarColour.GetStarColour(st)); mr.material.EnableKeyword("_EMISSION"); mr.material.SetTexture("_EmissionMap", Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, starSystem[i].seed, StarColour.GetStarColour(st))); mr.material.SetColor("_EmissionColor", new Color(0.5f, 0.5f, 0.5f)); } return(newGalaxy); }