Ejemplo n.º 1
0
    void OnGUI()
    {
        if (avoidGUI)
        {
            return;
        }

        // Do autoresizing of GUI layer
        GUIResizer.AutoResize();

        // Check whether a country or city is selected, then show a label with the entity name and its neighbours (new in V4.1!)
        if (map.countryHighlighted != null || map.cityHighlighted != null || map.provinceHighlighted != null)
        {
            string text;
            if (map.cityHighlighted != null)
            {
                if (!map.cityHighlighted.name.Equals(map.cityHighlighted.province))                   // show city name + province & country name
                {
                    text = "City: " + map.cityHighlighted.name + " (" + map.cityHighlighted.province + ", " + map.countries[map.cityHighlighted.countryIndex].name + ")";
                }
                else                            // show city name + country name (city is a capital with same name as province)
                {
                    text = "City: " + map.cityHighlighted.name + " (" + map.countries[map.cityHighlighted.countryIndex].name + ")";
                }
            }
            else if (map.provinceHighlighted != null)
            {
                text = map.provinceHighlighted.name + ", " + map.countryHighlighted.name;
                List <Province> neighbours = map.ProvinceNeighboursOfCurrentRegion();
                if (neighbours.Count > 0)
                {
                    text += "\n" + EntityListToString <Province>(neighbours);
                }
            }
            else if (map.countryHighlighted != null)
            {
                text = map.countryHighlighted.name + " (" + map.countryHighlightedIndex.ToString() + ", " + map.countryHighlighted.continent + ")";
                List <Country> neighbours = map.CountryNeighboursOfCurrentRegion();
                if (neighbours.Count > 0)
                {
                    text += "\n" + EntityListToString <Country>(neighbours);
                }
            }
            else
            {
                text = "";
            }
            float x, y;
            if (minimizeState)
            {
                x = Screen.width - 130;
                y = Screen.height - 140;
            }
            else
            {
                x = Screen.width / 2.0f;
                y = Screen.height - 40;
            }
            // shadow
            GUI.Label(new Rect(x - 1, y - 1, 0, 10), text, labelStyleShadow);
            GUI.Label(new Rect(x + 1, y + 2, 0, 10), text, labelStyleShadow);
            GUI.Label(new Rect(x + 2, y + 3, 0, 10), text, labelStyleShadow);
            GUI.Label(new Rect(x + 3, y + 4, 0, 10), text, labelStyleShadow);
            // texst face
            GUI.Label(new Rect(x, y, 0, 10), text, labelStyle);
        }

        // Assorted options to show/hide frontiers, cities, Earth and enable country highlighting
        GUI.Box(new Rect(0, 0, 150, 200), "");
        map.showFrontiers = GUI.Toggle(new Rect(10, 20, 150, 30), map.showFrontiers, "Toggle Frontiers");
        map.showEarth     = GUI.Toggle(new Rect(10, 50, 150, 30), map.showEarth, "Toggle Earth");

        //MAX!
        //map.showCities = GUI.Toggle (new Rect (10, 80, 150, 30), map.showCities, "Toggle Cities");

        map.showCountryNames       = GUI.Toggle(new Rect(10, 110, 150, 30), map.showCountryNames, "Toggle Labels");
        map.enableCountryHighlight = GUI.Toggle(new Rect(10, 140, 170, 30), map.enableCountryHighlight, "Enable Highlight");

        // buttons background color
        GUI.backgroundColor = new Color(0.1f, 0.1f, 0.3f, 0.95f);

        // Viewport mode sample: Stop button
        if (viewportDemoStarted)
        {
            if (GUI.Button(new Rect(10, 170, 160, 30), "  Stop Viewport Demo", buttonStyle))
            {
                ViewportModeStop();
            }
            else
            {
                ViewportModeRun();
            }
            return;
        }

        // Add button to toggle Earth texture
        if (GUI.Button(new Rect(10, 170, 160, 30), "  Change Earth style", buttonStyle))
        {
            map.earthStyle = (EARTH_STYLE)(((int)map.earthStyle + 1) % 4);
        }

        // Add buttons to show the color picker and change colors for the frontiers or fill
        if (GUI.Button(new Rect(10, 210, 160, 30), "  Change Frontiers Color", buttonStyle))
        {
            colorPicker.showPicker = true;
            changingFrontiersColor = true;
        }
        if (GUI.Button(new Rect(10, 250, 160, 30), "  Change Fill Color", buttonStyle))
        {
            colorPicker.showPicker = true;
            changingFrontiersColor = false;
        }
        if (colorPicker.showPicker)
        {
            if (changingFrontiersColor)
            {
                map.frontiersColor = colorPicker.setColor;
            }
            else
            {
                map.fillColor = colorPicker.setColor;
            }
        }

        // Add a button which demonstrates the navigateTo functionality -- pass the name of a country
        // For a list of countries and their names, check map.Countries collection.
        if (GUI.Button(new Rect(10, 290, 180, 30), "  Fly to Australia (Country)", buttonStyle))
        {
            FlyToCountry("Australia");
        }
        if (GUI.Button(new Rect(10, 325, 180, 30), "  Fly to Mexico (Country)", buttonStyle))
        {
            FlyToCountry("Mexico");
        }
        if (GUI.Button(new Rect(10, 360, 180, 30), "  Fly to New York (City)", buttonStyle))
        {
            FlyToCity("New York");
        }
        if (GUI.Button(new Rect(10, 395, 180, 30), "  Fly to Madrid (City)", buttonStyle))
        {
            FlyToCity("Madrid");
        }


        // Slider to show the new set zoom level API in V4.1
        GUI.Button(new Rect(10, 430, 85, 30), "  Zoom Level", buttonStyle);
        float prevZoomLevel = zoomLevel;

        GUI.backgroundColor = Color.white;
        zoomLevel           = GUI.HorizontalSlider(new Rect(100, 445, 80, 85), zoomLevel, 0, 1, sliderStyle, sliderThumbStyle);
        GUI.backgroundColor = new Color(0.1f, 0.1f, 0.3f, 0.95f);
        if (zoomLevel != prevZoomLevel)
        {
            prevZoomLevel = zoomLevel;
            map.SetZoomLevel(zoomLevel);
        }


        // Add a button to colorize countries
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 20, 180, 30), "  Colorize Europe", buttonStyle))
        {
            for (int colorizeIndex = 0; colorizeIndex < map.countries.Length; colorizeIndex++)
            {
                if (map.countries [colorizeIndex].continent.Equals("Europe"))
                {
                    Color color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));
                    map.ToggleCountrySurface(map.countries [colorizeIndex].name, true, color);
                }
            }
        }

        // Colorize random country and fly to it
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 60, 180, 30), "  Colorize Random", buttonStyle))
        {
            int   countryIndex = Random.Range(0, map.countries.Length);
            Color color        = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));
            map.ToggleCountrySurface(countryIndex, true, color);
            map.BlinkCountry(countryIndex, Color.green, Color.black, 0.8f, 0.2f);
        }

        // Button to clear colorized countries
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 100, 180, 30), "  Reset countries", buttonStyle))
        {
            map.HideCountrySurfaces();
        }

        // Tickers sample
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 140, 180, 30), "  Tickers Sample", buttonStyle))
        {
            TickerSample();
        }

        // Decorator sample
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 180, 180, 30), "  Texture Sample", buttonStyle))
        {
            TextureSample();
        }

        // Moving the Earth sample
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 220, 180, 30), "  Toggle Minimize", buttonStyle))
        {
            ToggleMinimize();
        }

        // Moving the Earth sample
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 260, 180, 30), "  Viewport Demo", buttonStyle))
        {
            ViewportModeStart();
        }

        // Add marker sample
        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 300, 180, 30), "  Add Marker", buttonStyle))
        {
            AddMarkerOnRandomCity();
        }

        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 340, 180, 30), "  Add Trajectories", buttonStyle))
        {
            AddTrajectories();
        }

        if (GUI.Button(new Rect(GUIResizer.authoredScreenWidth - 190, 380, 180, 30), "  Show States Names", buttonStyle))
        {
            ShowStatesNames();
        }
    }
Ejemplo n.º 2
0
Archivo: Demo.cs Proyecto: chen284y/GTW
 void FlyToCountry(int countryIndex)
 {
     map.FlyToCountry(countryIndex, 2.0f);
     map.BlinkCountry(countryIndex, Color.green, Color.black, 3.0f, 0.2f);
 }