Пример #1
0
 //Метод UpDate, только для ГУИ
 void OnGUI()
 {
     //Строки для отображения количества обоих видов жизней и неуязвимости
     GUI.Label(healthRect, health.ToString(), pointStyle);
     GUI.Label(infinityRect, infinity.ToString(), pointStyle);
     GUI.Label(immortalRect, immortal.ToString(), pointStyle);
     //Когда начинается игра, прячем текст GetReady
     if (isShowGetReady)
     {
     }
     else
     {
         getReady.enabled = false;
     }
     //Если игра закончилась
     if (callGameOver)
     {
         //Отображать текст GameOver
         gameOver.enabled = true;
         //Отображаются полосы со значениями очков, лучших очков, заработаных монеток
         GUI.Label(scoreRect, "Score: " + points.ToString(), pointStyleEnd);
         GUI.Label(bestScoreRect, "BestScore: " + bestPoints.ToString(), pointStyleEnd);
         GUI.Label(coinsRect, "Coins: " + coins.ToString(), pointStyleEnd);
         //Если левая кнопка мыши вверху(клик)
         if (Input.GetMouseButtonUp(0))
         {
             //Возвращаем изначальные размеры всем име.щимся кнопкам
             buttonTry.pixelInset          = new Rect(-screenWidth * 30 / 100, -screenHeight * 2 / 100, screenWidth * 12 / 100, screenWidth * 6 / 100);
             buttonAchievements.pixelInset = new Rect(screenWidth * 38 / 100, screenHeight * 30 / 100, screenWidth * 12 / 100, screenWidth * 6 / 100);
             buttonShop.pixelInset         = new Rect(screenWidth * 38 / 100, screenHeight * 18 / 100, screenWidth * 12 / 100, screenWidth * 6 / 100);
             //Если координаты мыши совпали с координатами кнопки TryAgain
             if (buttonTry.HitTest(Input.mousePosition))
             {
                 //Включаем игру по новой, сохраняем лучшие значения очков
                 Application.LoadLevel(0);
                 callGameOver = false;
                 PlayerPrefs.SetInt("bestPoints", bestPoints);
                 PlayerPrefs.Save();
                 //Если координаты мыши совпали с координатами кнопки Achievements
             }
             else if (buttonAchievements.HitTest(Input.mousePosition))
             {
                 //Находим скрипт с достижениями
                 aBar = FindObjectOfType <achieveBar>();
                 //Передаем позицию, в которую необходимо двигать меню достижений
                 aBar.GetPosition(transform.position.x);
                 //Передаем в скрипт, что необходимо двигать меню
                 aBar.StartMoveAchiveBar(1);
                 //Отключаем книпки Shop и Achievements
                 EnableButtons(2);
                 //Если координаты мыши совпали с координатами кнопки Shop, выполняем теже действия, которые
                 //описаны выше, только для меню магазина
             }
             else if (buttonShop.HitTest(Input.mousePosition))
             {
                 callShop = FindObjectOfType <ShopMenu>();
                 callShop.GetShopPosition(callCharacter.transform.position.x);
                 callShop.StartMoveShopMenu(1);
                 EnableButtons(2);
             }
             //Если кнопка мыши внизу, и координаты мыши совпадают с координатами одной из кнопок,
             //то увеличиваем данную кнопку в размерах
         }
         else if (Input.GetMouseButtonDown(0) & buttonTry.HitTest(Input.mousePosition))
         {
             buttonTry.pixelInset = new Rect(-screenWidth * 31 / 100, -screenHeight * 2 / 100, screenWidth * 13 / 100, screenWidth * 7 / 100);
         }
         else if (Input.GetMouseButtonDown(0) & buttonAchievements.HitTest(Input.mousePosition))
         {
             buttonAchievements.pixelInset = new Rect(screenWidth * 37 / 100, screenHeight * 29 / 100, screenWidth * 13 / 100, screenWidth * 7 / 100);
         }
         else if (Input.GetMouseButtonDown(0) & buttonShop.HitTest(Input.mousePosition))
         {
             buttonShop.pixelInset = new Rect(screenWidth * 37 / 100, screenHeight * 17 / 100, screenWidth * 13 / 100, screenWidth * 7 / 100);
         }
     }
     else
     {
         //Если кнопка мыши вверху, возвращаем размеру иконки бессмертия прежний размер.
         //Еще один обработчик нажатия, потому что выше обрабатывается нажатия по окончанию игры
         if (Input.GetMouseButtonUp(0))
         {
             immortalIcon.pixelInset = new Rect(-screenWidth * 45 / 100, screenHeight * 17 / 100, screenWidth * 5 / 100, screenWidth * 4 / 100);
             //Если нажата кнопка мыши, и координаты мыши совпадают с координатами иконки бессмертия
         }
         else if (Input.GetMouseButtonDown(0) & immortalIcon.HitTest(Input.mousePosition))
         {
             //Увеличиваем иконку в размерах
             immortalIcon.pixelInset = new Rect(-screenWidth * 46 / 100, screenHeight * 18 / 100, screenWidth * 6 / 100, screenWidth * 5 / 100);
             //Если у игрока имеется в запасе неуязвимость
             if (immortal > 0)
             {
                 //Если он уязвим
                 if (!isImmortal)
                 {
                     //Передаем в скрипт CharacterControll, что демон неуязвим
                     callCharacter.immortalDemon = true;
                     //Понижаем количество возможных неуязвимостей
                     immortal -= 1;
                     //Сохраняем количество возможных неуязвимостей
                     PlayerPrefs.SetInt("immortal", immortal);
                     PlayerPrefs.Save();
                     //Включаем неуязвимость для гуи, чтобы лишний раз не понижалась цифра возможных неуязвимостей
                     isImmortal = true;
                 }
             }
         }
     }
     //Отображение текущего количества очков
     if (isShowPoint)
     {
         GUI.Label(pointRect, points.ToString(), pointStyle);
     }
     //Обработка кнопки назад на мобильном устройстве, которая закрывает игру
     if (Input.GetKeyUp(KeyCode.Escape))
     {
         Application.Quit();
     }
 }