Этот урок описывает создание меню проигрыша в 2D игре на Unity 5. Мы создадим функциональное меню, отображающее рекорд, текущий счет и кнопки перезапуска игры и перехода на страницу Facebook.
Создание элементов меню и скрипта подсчета очков
Создадим текстовое поле «Record» для отображения рекорда (белый шрифт, центрированное выравнивание, размер адаптируется под различные разрешения). Также создадим C# скрипт GameScore для отслеживания и отображения счета.
В GameScore:
- jumpCountBlocks (int, 0 по умолчанию): текущий счет.
- gameStarted (bool, false по умолчанию): флаг начала игры.
- record (int, 0 по умолчанию): текущий рекорд.
- recordText (Text): ссылка на текстовое поле рекорда.
В функции Update(), если gameStarted == true, скрипт обновляет отображение счета и, если jumpCountBlocks > record, обновляет рекорд:
public class GameScore : MonoBehaviour
{
public Text recordText;
public int jumpCountBlocks = 0;
public bool gameStarted = false;
public int record = 0;
void Update()
{
if (gameStarted)
{
// код обновления текущего счета
if (jumpCountBlocks > record)
{
record = jumpCountBlocks;
recordText.text = "Top: " + record.ToString();
}
}
}
}
Кнопки меню и их функционал
Создадим кнопки «Restart» и «Facebook», разместим их над стандартными кнопками интерфейса и загрузим соответствующие спрайты.
В скрипте, управляющем игровым процессом, функция PlayerLose() активирует объекты с кнопками меню (с использованием ScrollRect для анимации). В скрипте Bottoms обработчики событий для кнопок:
- «Restart»: SceneManager.LoadScene(SceneManager.GetActiveScene().name);
- «Facebook»: Application.OpenURL("ваш_адрес_facebook");
public class Bottoms : MonoBehaviour
{
public void OnClick()
{
GameObject button = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject;
if (button.name == "Restart")
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
else if (button.name == "Facebook")
{
Application.OpenURL("ваш_адрес_facebook");
}
}
}
Мы создали функциональное меню проигрыша с отображением рекорда и счета, а также кнопками перезапуска и перехода на Facebook. Анимация и обработка событий реализованы с помощью скриптов Unity.