Повторение: всплывающее окно достижения
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 14 из 50.
Задание
ЛегкоПо двору разбросаны монеты, а стрелки управляют Player (Player.cs, готов). Добавь в игру достижения, которые появляются на экране. Напиши три скрипта; сцена уже связывает их поля и подключает список Achievements On Unlocked (String) к AchievementPopup.Show на HUD.
Collector(на Player) подбирает каждый объект с тегомCoin, которого касается, удаляет его и сообщает новое общее количество через публичное событие C#OnCoinsChanged, передающее int. Он ничего не знает о достижениях.Achievementsслушает свойcollector, только пока активен. При 1 монете он разблокируетFirst Coin, при 3 —Pocket Money, а при 6 —Coin Hoarder. При каждой разблокировке вызывается его поле UnityEventonUnlocked, передающее название (строку).AchievementPopup.Show(string title)показываетpanel, а вtitleTextотображаетсяUnlocked: First Coin, и скрывает его черезshowTime(2) секунды. Если вызвать Show, пока панель отображается, появится новое название, а отсчёт 2 секунд начнётся заново.
Нажми Play, собери все шесть монет, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class Achievements : MonoBehaviour
{
public Collector collector;
}
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыСовместная работа компонентовПовторение: модульная турель4Сериализованные данные
Сериализуемые классыСписки в InspectorПеречисления в InspectorПовторение: таблица лута2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействия5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиВолны как данныеПовторение: база предметов3События
События C# в UnityПодписка в OnEnableПоля UnityEventСобытия управляют интерфейсомПовторение: всплывающее окно достижения6Сохранение с помощью JSON
JsonUtilityСохранение игрыЗагрузка и значения по умолчаниюПовторение: слоты сохранения