using UnityEngine;
using System.Text;
using System.Collections;
using System.Collections.Generic;
namespace WPM {
public class DemoRectangleSelection : MonoBehaviour
{
WorldMapGlobe map;
GUIStyle labelStyle;
void Start ()
{
labelStyle = new GUIStyle ();
labelStyle.normal.textColor = Color.white;
// setup GUI resizer - only for the demo
GUIResizer.Init (800, 500);
// Get map instance to Globe API methods
map = WorldMapGlobe.instance;
}
///
/// UI Buttons
///
void OnGUI ()
{
// Do autoresizing of GUI layer
GUIResizer.AutoResize ();
if (map.rectangleSelectionInProgress) {
GUI.Box (new Rect (10, 10, 600, 40), "Click and drag to make the selection.", labelStyle);
} else {
GUI.Box (new Rect (10, 10, 600, 40), "Press R to initiate a rectangle selection.", labelStyle);
}
}
void Update ()
{
if (!map.rectangleSelectionInProgress && Input.GetKeyDown (KeyCode.R)) {
Color rectangleFillColor = new Color (0.5f, 1f, 1f, 0.78f);
Color rectangleBorderColor = Color.green;
float rectangleBorderWidth = 0.2f;
map.RectangleSelectionInitiate (rectangleSelectionCallback, rectangleFillColor, rectangleBorderColor, rectangleBorderWidth);
}
}
void rectangleSelectionCallback (Vector3 spherePosition1, Vector3 spherePosition2, bool finishRectangleSelection)
{
if (finishRectangleSelection) {
List selectedCountries = map.GetVisibleCountries (spherePosition1, spherePosition2);
Debug.Log ("Countries found: " + EntityListToString (selectedCountries));
List selectedProvinces = map.GetVisibleProvinces (spherePosition1, spherePosition2);
Debug.Log ("Provinces found: " + EntityListToString (selectedProvinces));
List selectedCities = map.GetVisibleCities (spherePosition1, spherePosition2);
Debug.Log ("Cities found: " + CityListToString (selectedCities));
}
}
string EntityListToString (Listentities)
{
if (entities == null)
return "";
StringBuilder sb = new StringBuilder ();
for (int k=0; k 0) {
sb.Append (", ");
}
sb.Append (((IAdminEntity)entities [k]).name);
}
return sb.ToString ();
}
string CityListToString (List cities)
{
if (cities == null)
return "";
StringBuilder sb = new StringBuilder ();
for (int k=0; k 0) {
sb.Append (", ");
}
sb.Append (cities[k].name);
}
return sb.ToString ();
}
}
}