void Start() { if (!starData) { Debug.LogError("No StarData asset assigned to the renderer", this); enabled = false; return; } Star[] stars = starData.stars; List <Star> starsList = cullBelowHorizon ? starsList = Starmap.GetStarsCulledBelowHorizon(stars, transform.InverseTransformDirection(Vector3.up), cullBelowHorizonOffset) : starsList = new List <Star>(stars); if (useCubicSplitting) { var cubicSplitStars = CubicSplit(starsList); foreach (var cs in cubicSplitStars) { var splits = Starmap.SplitToMax(cs, Starmap.MESH_STAR_COUNT_LIMIT); foreach (var chunk in splits) { Mesh m = GenerateStarsAsStaticQuadsMesh(chunk); GameObject go = new GameObject("Stars"); go.AddComponent <MeshFilter>().sharedMesh = m; go.AddComponent <MeshRenderer>().material = material; go.transform.SetParent(gameObject.transform, false); } } } else { var splits = Starmap.SplitToMax(starsList, Starmap.MESH_STAR_COUNT_LIMIT); foreach (var chunk in splits) { Mesh m = GenerateStarsAsStaticQuadsMesh(chunk); GameObject go = new GameObject("Stars"); go.AddComponent <MeshFilter>().sharedMesh = m; go.AddComponent <MeshRenderer>().material = material; go.transform.SetParent(gameObject.transform, false); } } }
void Start() { if (!starData) { Debug.LogError("No StarData asset assigned to the renderer", this); enabled = false; return; } var stars = new List <Star>(starData.stars); var splits = Starmap.SplitToMax(stars, Starmap.MESH_STAR_COUNT_LIMIT); foreach (var chunk in splits) { Mesh m = GenerateStarsAsGeometryMesh(chunk); GameObject go = new GameObject("Stars"); go.AddComponent <MeshFilter>().sharedMesh = m; go.AddComponent <MeshRenderer>().material = material; go.transform.SetParent(gameObject.transform, false); } }