示例#1
0
    public void GoToNewPoint(Vector2 newGeo, float newAlt, bool newFlat)
    {
        // Новые координаты в формате 2d вектора Mapbox
        Vector2d myNewCoord = new Vector2d(newGeo.x, newGeo.y);

        // Перейти к новым координатам
        _AbsMap.UpdateMap(myNewCoord);

        // Установить тип карты - плоская или рельефная
        if (newFlat)
        {
            _AbsMap.Terrain.SetElevationType(ElevationLayerType.FlatTerrain);
            // Обнуление высоты плоской карты
            Vector3 pos = _Map.transform.localPosition;
            pos.y = 0.0f;
            _Map.transform.localPosition = pos;
        }
        else
        {
            _AbsMap.Terrain.SetElevationType(ElevationLayerType.TerrainWithElevation);
            // Коррекция высоты рельефной карты
            Vector3 pos = _Map.transform.localPosition;
            pos.y = -AirportALt * WorldScale.y;
            _Map.transform.localPosition = pos;
        }
        _WorldMessage.myFuncShowMessage("Переход в новую точку", 2.0f);
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey("left shift") || Input.GetKey("right shift")) // Если нажата кнопка Shift
        {
            if (Input.GetKeyDown("1"))                                 // Переход к новым координатам
            {
                print("UnityTileSize = " + _AbsMap.UnityTileSize);
                print("WorldRelativeScale = " + _AbsMap.WorldRelativeScale);
                print("Zoom = " + _AbsMap.Zoom);
                print("CenterLatitudeLongitude = " + _AbsMap.CenterLatitudeLongitude);
                print("CenterMercator = " + _AbsMap.CenterMercator);
                print("");

                _AbsMap.SetZoom(_AbsMap.Zoom + 0.1f);
                _AbsMap.UpdateMap();

                Vector2d myNewCoord = new Vector2d(47.26666667f, 11.35f); // Иннсбрук
                _AbsMap.UpdateMap(myNewCoord, 12f);
            }
            if (Input.GetKeyDown("2")) // Переход от плоской карты к объемной
            {
                print(_AbsMap.Terrain.ElevationType);
                if (_AbsMap.Terrain.ElevationType != ElevationLayerType.TerrainWithElevation)
                {
                    _AbsMap.Terrain.SetElevationType(ElevationLayerType.TerrainWithElevation);
                }
                else
                {
                    _AbsMap.Terrain.SetElevationType(ElevationLayerType.FlatTerrain);
                }
                print(_AbsMap.Terrain.ElevationType);
            }
        }

        // Тестовое ссобщение
        if (Input.GetKeyDown("9"))
        {
            _WorldMessage.myFuncShowMessage("Нажата клавиша 9", 3.0f);
            Vector3 myGeoPos = WorldToGeoPosition(Vector3.zero);
        }
    }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        // Коррекция корневого объекта
        if (_ComPars.MapCorrectionMode)
        {
            float x   = -Input.GetAxis("Horizontal");
            float z   = -Input.GetAxis("Vertical");
            float y   = Input.GetAxis("Throttle");
            float yaw = Input.GetAxis("Twist");
            float f   = -Input.GetAxis("Hat_Vert");

            if (x != 0 || z != 0 || y != 0)
            {
                //_Text3.text = "Сдвиг X = " + (_HorSpeed * x / 1000000) + " Сдвиг Y = " + +(_HorSpeed * y / 1000000) + " Сдвиг Z = " + +(_HorSpeed * z / 1000000);
                Vector3 pos = transform.localPosition;
                pos.x += _HorSpeed * x / 10;
                pos.z += _HorSpeed * z / 10;
                pos.y += _HorSpeed * y / 10;
                transform.localPosition = pos;
                //_WorldMessage.myFuncShowMessage("Новое положение = " + transform.position, 3);
            }
            if (yaw != 0)
            {
                //_Text3.text = "Поворот = " + (_HorSpeed * yaw / 1000000);
                Vector3 eu = transform.localEulerAngles;
                eu.y += _HorSpeed * yaw;
                transform.localEulerAngles = eu;
                //_WorldMessage.myFuncShowMessage("Новый поворот = " + transform.eulerAngles.y, 3);
            }
            if (f != 0)
            {
                // Поле зрения в градусах
                _FOV = (int)(_MainCam.fieldOfView + f);
                _MainCam.fieldOfView  = _FOV;
                _RightCam.fieldOfView = _FOV;
                //_Text3.text = "FOV: Изменение f = " + f + ", Новый = " + _FOV;
                _WorldMessage.myFuncShowMessage("Новый FOV = " + _FOV, 3);
            }
        }

        // Нажата кнопка геймпада "B"
        if (Input.GetButtonDown("JoyButt1"))
        {
            // Переключение глиссад
            if (_ComPars.GlideSelection)
            {
                int newGlide = _Env.SwitchEnv("Glides");
                //_WorldMessage.myFuncShowMessage("Новая глиссада = " + newGlide, 3);
                string myString;
                switch (newGlide)
                {
                case 0:
                    myString = "[" + _GlidesStr.Substring(1, 1) + "]" + _GlidesStr.Substring(3);
                    break;

                case 1:
                    myString = _GlidesStr.Substring(0, 2) + "[" + _GlidesStr.Substring(3, 1) + "]" + _GlidesStr.Substring(5);
                    break;

                case 2:
                    myString = _GlidesStr.Substring(0, 4) + "[" + _GlidesStr.Substring(5, 1) + "]" + _GlidesStr.Substring(7);
                    break;

                case 3:
                    myString = _GlidesStr.Substring(0, 6) + "[" + _GlidesStr.Substring(7, 1) + "]" + _GlidesStr.Substring(9);
                    break;

                case 4:
                    myString = _GlidesStr.Substring(0, 8) + "[" + _GlidesStr.Substring(9, 1) + "]" + _GlidesStr.Substring(11);
                    break;

                case 5:
                    myString = _GlidesStr.Substring(0, 10) + "[" + _GlidesStr.Substring(11, 1) + "]" + _GlidesStr.Substring(13);
                    break;

                case -1:
                    myString = _GlidesStr.Substring(0, 12) + "[" + _GlidesStr.Substring(13, 1) + "]" + _GlidesStr.Substring(15);
                    break;

                default:
                    myString = "Ошибка";
                    break;
                }
                _GlidesText.text = myString;
            }

            // Переключение подходов
            else if (_ComPars.STARselection)
            {
                int newSTAR = _Env.SwitchEnv("STARs");
                //_WorldMessage.myFuncShowMessage("Новый подход = " + newSTAR, 3);
                string myString;
                switch (newSTAR)
                {
                case 0:
                    myString = "[" + _STARsStr.Substring(1, 1) + "]" + _STARsStr.Substring(3);
                    break;

                case 1:
                    myString = _STARsStr.Substring(0, 2) + "[" + _STARsStr.Substring(3, 1) + "]" + _STARsStr.Substring(5);
                    break;

                case 2:
                    myString = _STARsStr.Substring(0, 4) + "[" + _STARsStr.Substring(5, 1) + "]" + _STARsStr.Substring(7);
                    break;

                case 3:
                    myString = _STARsStr.Substring(0, 6) + "[" + _STARsStr.Substring(7, 1) + "]" + _STARsStr.Substring(9);
                    break;

                case 4:
                    myString = _STARsStr.Substring(0, 8) + "[" + _STARsStr.Substring(9, 1) + "]" + _STARsStr.Substring(11);
                    break;

                case -1:
                    myString = _STARsStr.Substring(0, 10) + "[" + _STARsStr.Substring(11, 1) + "]" + _STARsStr.Substring(13);
                    break;

                default:
                    myString = "Ошибка";
                    break;
                }
                _STARsText.text = myString;
            }

            // Переключение точек IF
            else if (_ComPars.IFselection)
            {
                int newIF = _Env.SwitchEnv("IFs");
                //_WorldMessage.myFuncShowMessage("Новая точка IF = " + newIF, 3);
                string myString;
                switch (newIF)
                {
                case 0:
                    myString = "[" + _IFsStr.Substring(1, 1) + "]" + _IFsStr.Substring(3);
                    break;

                case 1:
                    myString = _IFsStr.Substring(0, 2) + "[" + _IFsStr.Substring(3, 1) + "]" + _IFsStr.Substring(5);
                    break;

                case -1:
                    myString = _IFsStr.Substring(0, 4) + "[" + _IFsStr.Substring(5, 1) + "]" + _IFsStr.Substring(7);
                    break;

                default:
                    myString = "Ошибка";
                    break;
                }
                _IFsText.text = myString;
            }

            // Включение/выключение маяков
            else if (_ComPars.BeaconsSwitch)
            {
                int NewBeaconsIsActive = _Env.SwitchEnv("Beacons");
                //_WorldMessage.myFuncShowMessage("Новое состояние маяков = " + NewBeaconsIsActive, 2);
                string myString;
                switch (NewBeaconsIsActive)
                {
                case 0:
                    myString = "[" + _BeaconsStr.Substring(1, 1) + "]" + _BeaconsStr.Substring(3);
                    break;

                case -1:
                    myString = _BeaconsStr.Substring(0, 2) + "[" + _BeaconsStr.Substring(3, 1) + "]" + _BeaconsStr.Substring(5);
                    break;

                default:
                    myString = "Ошибка";
                    break;
                }
                _BeaconsText.text = myString;
            }

            // Включение/выключение баннеров
            else if (_ComPars.BannersSwitch)
            {
                int NewBannersIsActive = _Env.SwitchEnv("Banners");
                //_WorldMessage.myFuncShowMessage("Новое состояние баннеров = " + NewBannersIsActive, 2);
                string myString;
                switch (NewBannersIsActive)
                {
                case 0:
                    myString = "[" + _BannersStr.Substring(1, 1) + "]" + _BannersStr.Substring(3);
                    break;

                case -1:
                    myString = _BannersStr.Substring(0, 2) + "[" + _BannersStr.Substring(3, 1) + "]" + _BannersStr.Substring(5);
                    break;

                default:
                    myString = "Ошибка";
                    break;
                }
                _BannersText.text = myString;
            }
        }



        // Нажата кнопка "Y" - Вызвать меню настроек
        if (Input.GetButtonDown("JoyButt3"))
        {
            //_WorldMessage.myFuncShowMessage("Нажата кнопка Y", 2);
            if (_Menu.activeSelf)
            {
                _Menu.SetActive(false); // Спрятать меню
            }
            else
            {
                _Menu.transform.parent           = Camera.main.transform; // временно перенести меню в дети камеры
                _Menu.transform.localPosition    = Vector3.forward * 5;   // поместить перед камерой
                _Menu.transform.localEulerAngles = Vector3.zero;          // выровнять перед камерой
                _Menu.transform.parent           = null;                  // вернуть меню в корень сцены
                _Menu.SetActive(true);                                    // включить меню
            }
        }
    }