예제 #1
0
        private System.Collections.IEnumerator PlanetCoroutine(PlanetConfig cfg, Image minimap)
        {
            Instance = this;
            Cleanup();
            yield return(new WaitForSeconds(.5f));

            root = Unit.CreatePlanetUnit(cfg);
            yield return(new WaitForSeconds(.5f));

            root.Render(7);
            yield return(new WaitForSeconds(4f));

            //moon = Unit.CreateRenderedPlanet(cfg2);
            ResetMinimap(minimap);
            root.ZoomTo(new GeoVector(Mathf.PI, Mathf.PI / 2), 0);
        }
예제 #2
0
        internal void Render(int renderLevel)
        {
            //create renderer
            if (unitRenderer == null)
            {
                unitRenderer = PlanetGenerator.CreateRenderer();
                string name = LocalIndex.ToString();
                Unit   tmp  = Parent;
                while (tmp != null && tmp.Parent != null)
                {
                    name = tmp.LocalIndex + " - " + name;
                    tmp  = tmp.Parent;
                }
                unitRenderer.name = name;
            }

            //generate noise now
            if (CalcLevel == -1)
            {
                Surface.CreateTerrainSurfacePoints(cfg, ZoomLevel);
            }
            else if (PlanetConfig.PointLog - CalcLevel < renderLevel)
            {
                Surface.CreateTerrainSurfacePoints(cfg, ZoomLevel);
            }

            //render
            if (unitRenderer.RenderLevel == -1)
            {
                unitRenderer.Render(this, renderLevel);
            }
            else if (renderLevel > unitRenderer.RenderLevel)
            {
                unitRenderer.Render(this, renderLevel);
            }
        }