Ejemplo n.º 1
0
    public void SetMapRadar(string name)
    {
        var mapOverviews = GameObject.Find("GameContent").GetComponent <MapOverviews>();

        if (mapOverviews.UseSimpleRadar)
        {
            name += "_sr";
        }

        Map = mapOverviews.Maps.First(m => m.Name == name);

        MapPlane = GameObject.Find("MapOverviewRadar");
        MapPlane.GetComponent <Renderer>().material.mainTexture = Map.Texture;
        MapPlane.transform.localScale = _originalScale2D = Map.Scale;

        Map3DLevel       = Instantiate(Map.Layout3D);
        _originalScale3D = Map3DLevel.transform.localScale;

        SwitchToPlaybackMode(PlaybackMode.TwoD);
    }
Ejemplo n.º 2
0
    public void extra(string key, string value)
    {
        const float mnoznik = 1;
        //Destroy(mapplane);
        var        tmp = Resources.Load("Prefabs/GISplane", typeof(GameObject));
        GameObject go  = (GameObject)Instantiate(tmp);

        go.transform.position = new Vector3(ghostPivot.transform.position.x, 0, ghostPivot.transform.position.z);
        //go.transform.localScale = Vector3.one * (tmpsize * (float)planeSize / 1000.0f)/2.0f;
        go.transform.localScale = Vector3.one * (tmpsize * 2.0f * 100.0f / planeSize) * whproportion / mnoznik;
        var comp = go.GetComponent <MapPlane>();
        var spr  = go.GetComponent <SpriteRenderer>();

        comp.resolution = new Vector2Int((int)(planeSize * mnoznik), (int)(planeSize * mnoznik));
        //go.transform.rotation.eulerAngles(90,0,0);
        MapPlane mp = go.GetComponent <MapPlane>();

        go.transform.parent = this.transform;
        mapplane            = mp;
        spr.sortingOrder    = orderCounter;
        ++orderCounter;

        //texture
        var min = GISparser.LatlonToXY(new Vector2d(gisdata.minLon, gisdata.minLat));
        var max = GISparser.LatlonToXY(new Vector2d(gisdata.maxLon, gisdata.maxLat));

        var sr = (max - min) / 2;

        sr += max;

        double kat    = 0.005;
        double obszar = kat * tmpsize * 2.0f * whproportion;

        min = sr - new Vector2d(obszar, obszar);
        max = sr + new Vector2d(obszar, obszar);

        min += new Vector2d(ghostPivot.transform.position.x * kat * 2.0f, ghostPivot.transform.position.z * kat * 2.0f);
        max += new Vector2d(ghostPivot.transform.position.x * kat * 2.0f, ghostPivot.transform.position.z * kat * 2.0f);

        comp.fillHeatMap(min, max, gisdata, key, value);
    }
Ejemplo n.º 3
0
    public void SwitchToPlaybackMode(PlaybackMode playbackMode)
    {
        PlaybackMode = playbackMode;

        if (PlaybackMode == PlaybackMode.ThreeD)
        {
            Map3DLevel.SetActive(true);

            Map3DLevel.transform.localScale = ScaleZeroHeight(_originalScale3D);

            var animation3D = AnimateScale(Map3DLevel, _originalScale3D, 0.2f);
            StartCoroutine(animation3D);

            var animation2D = AnimateScale(MapPlane, Vector3.zero, 0.2f, () => {
                MapPlane.transform.localScale = _originalScale2D;
                MapPlane.SetActive(false);
            });

            StartCoroutine(animation2D);
        }
        else
        {
            var animation3D = AnimateScale(Map3DLevel, ScaleZeroHeight(_originalScale3D), 0.2f, () =>
            {
                Map3DLevel.transform.localScale = _originalScale3D;
                Map3DLevel.SetActive(false);
            });

            MapPlane.transform.localScale = Vector3.zero;

            MapPlane.SetActive(true);

            var animation2D = AnimateScale(MapPlane, _originalScale2D, 0.2f);


            StartCoroutine(animation3D);
            StartCoroutine(animation2D);
        }
    }