54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
/// <summary>
|
||
/// Поставляет описания настроек по ID настройки
|
||
/// </summary>
|
||
public class SettingDescriptionProvider : MonoBehaviour
|
||
{
|
||
public List<SettingDescription> settingDescriptions;
|
||
public GameObject defaultDescription;
|
||
|
||
public GameObject GetDescription(string id)
|
||
{
|
||
//Проверки заполнения
|
||
if (settingDescriptions == null)
|
||
{
|
||
Debug.LogError("Не заданы описания настроек"); return null;
|
||
}
|
||
if (defaultDescription == null)
|
||
{
|
||
Debug.LogError("Не задано описание настройки по умолчанию"); return null;
|
||
}
|
||
|
||
//поиск по id
|
||
GameObject foundDescription = null;
|
||
for (int i = 0; i < settingDescriptions.Count; i++)
|
||
{
|
||
if (settingDescriptions[i].id == id)
|
||
{
|
||
foundDescription = settingDescriptions[i].descriptionPrefab;
|
||
break;
|
||
}
|
||
}
|
||
|
||
//возврат
|
||
if(foundDescription == null)
|
||
{
|
||
Debug.LogError($"Описание настройки с id: {id} не найдено. Возврат дефолтного значения");
|
||
return defaultDescription;
|
||
}
|
||
return foundDescription;
|
||
}
|
||
|
||
|
||
[Serializable]
|
||
public class SettingDescription
|
||
{
|
||
public string id;
|
||
public GameObject descriptionPrefab;
|
||
}
|
||
}
|