Скрипт, чтобы добавить систему заданий в вашу игру Unity __
- Создаете пустой объект QuestManager и добавляете ему скрипт quests
- В поле Quest Panel даете ссылку на UI panel с заданиями
- В поле Quest key пишете ключ, по которому будете обращаться к какому-либо заданию
- В поле Quest name пишете название квеста, которое будет отображаться в тексте задания
- В поле Quest title даете ссылку на текст в панели заданий
- Обращаетесь к скрипту через QInstance
- Вызываете метод
setDone()и пишите название задания
Quests.QInstance.setDone("Quest1")
- Обращаетесь к скрипту через
QInstance - Вызываете метод
isQuestCompleted()и пишите название задания
Quests.QInstance.isQuestCompleted("key")
В самом начале иницилизируем базу данных(все задания, которые вы ввели в инспекторе)
private void InitializeQuestsDataBase()
{
// Перед заполнением на всякий случай очищаем нашу базу данных
questsBaseData.Clear();
// Заполняем questsBaseData ключами и классами которые мы укажем в листе _Quests
for (int i = 0; i < _Quests.Count; i++)
{
questsBaseData.Add(_Quests[i].questKey, _Quests[i]);
}
}Проверяем, есть ли в базе данных задание с ключом key и если оно есть:
- Увеличиваем счетчик выполненых заданий
- Помечаем это задание как выполненное
- производим звук выполненного задания(любой звук, какой вы захотите) Иначе выводим соответсующее сообщение в консоль
public void setDone(string key)
{
if (questsBaseData.ContainsKey(key)) // если ключ находится в словаре
{
questsComleted++;
//Debug.Log("questC: " + questsComleted);
questsBaseData[key].isDone = true; // завершили квест с названием key
playSound(sounds[0], volume: 0.3f, p1: 1f, p2: 1f);
}
else
{
Debug.LogError("Ключ " + key + " не найден в словаре");
}
}- Проверяем находится ли данный ключ в словаре заданий
- Проверяем значение
isDone - Если
isDone == true, то возвращаемtrue, иначе возвращаемfalse
public bool isQuestCompleted(string key)
{
if (questsBaseData.ContainsKey(key)) // если ключ находится в словаре
{
if (questsBaseData[key].isDone)
return true;
}
return false;
}