Пример #1
0
    private static void ReloadOSMTiles()
    {
        GameObject osmTileProviderBehaviour = GameObject.Find("OSMTiles");

        osmTileProviderBehaviour.gameObject.DeleteChildren();
        OSMTileProvider.Clear();

        OSMTileProvider.GetOSMTileGameObjectsInBoundingBox(OSMTileProviderBehaviour.mapBounds, OSMTileProviderBehaviour.CurrentZoomLevel);
    }
Пример #2
0
    public override void OnInspectorGUI()
    {
        EditorGUIUtility.LookLikeInspector();

        GUILayout.Label("OSMTileProvider", EditorStyles.boldLabel);

        int oldZoomLevel = OSMTileProviderBehaviour.CurrentZoomLevel;

        OSMTileProviderBehaviour.CurrentZoomLevel = EditorGUILayout.IntSlider("ZoomLevel", OSMTileProviderBehaviour.CurrentZoomLevel, 0, 18);
        if (OSMTileProviderBehaviour.CurrentZoomLevel != oldZoomLevel)
        {
            //OSMTileProvider.PrepareZoomGameObjects(oldZoomLevel);
            OSMTileProvider.SetZoomLevelVisible(oldZoomLevel, false);
            OSMTileProvider.SetZoomLevelVisible(OSMTileProviderBehaviour.CurrentZoomLevel, true);
        }


        currentIndexX = EditorGUILayout.IntSlider("X", currentIndexX, 0, OSMTileProvider.TileCountForZoomLevel(zoomlevel) - 1);
        currentIndexY = EditorGUILayout.IntSlider("Y", currentIndexY, 0, OSMTileProvider.TileCountForZoomLevel(zoomlevel) - 1);

        if (GUILayout.Button("Download Tile"))
        {
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);
        }


        if (GUILayout.Button("Download Tile (with Neighbours)"))
        {
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);

            OSMTileProvider.GetOSMTileGameObject(currentIndexX - 1, currentIndexY - 1, zoomlevel);
            OSMTileProvider.GetOSMTileGameObject(currentIndexX - 1, currentIndexY, zoomlevel);
            OSMTileProvider.GetOSMTileGameObject(currentIndexX - 1, currentIndexY + 1, zoomlevel);

            OSMTileProvider.GetOSMTileGameObject(currentIndexX + 1, currentIndexY - 1, zoomlevel);
            OSMTileProvider.GetOSMTileGameObject(currentIndexX + 1, currentIndexY, zoomlevel);
            OSMTileProvider.GetOSMTileGameObject(currentIndexX + 1, currentIndexY + 1, zoomlevel);

            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY - 1, zoomlevel);
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY + 1, zoomlevel);
        }


        EditorGUILayout.Separator();
        EditorGUILayout.Separator();

        GUILayout.BeginVertical();
        GUILayout.BeginHorizontal();
        GUILayout.Space(25f);
        if (GUILayout.Button("^", GUILayout.Width(25f)))
        {
            currentIndexY -= 1;
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("<", GUILayout.Width(25f)))
        {
            currentIndexX -= 1;
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);
        }
        GUILayout.Space(20f);

        if (GUILayout.Button(">", GUILayout.Width(25f)))
        {
            currentIndexX += 1;
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Space(25f);

        if (GUILayout.Button("v", GUILayout.Width(25f)))
        {
            currentIndexY += 1;
            OSMTileProvider.GetOSMTileGameObject(currentIndexX, currentIndexY, zoomlevel);
        }
        GUILayout.EndHorizontal();
        GUILayout.EndVertical();


        if (GUILayout.Button("ResetProvider --> Delete Children"))
        {
            osmTileProviderBehaviour.gameObject.DeleteChildren();
            OSMTileProvider.Clear();
        }


        if (GUILayout.Button("Download Bounds"))
        {
            OSMTileProvider.GetOSMTileGameObjectsInBoundingBoxCutting(OSMTileProviderBehaviour.mapBounds, OSMTileProviderBehaviour.CurrentZoomLevel);
        }

        //if (GUI.changed)
        //{
        //    EditorUtility.SetDirty(osmTileProviderBehaviour);
        //}

        DrawDefaultInspector();
    }