Не могу взять Sprite из DataTable
Логика мне подсказывает, что нет причин по которым картинка не может хранится в таблице, но почему-то достать ее у меня не получается. В поле спрайт после работы скрипта - null. Я не правильно пишу запрос?
Создание таблицы
private static void InitSpriteTable()
{
SpriteTable.Columns.Clear();
SpriteTable.Columns.Add("Id");
SpriteTable.Columns.Add("Sprite");
DataColumn[] PrimaryKeyColumns = new DataColumn[] { SpriteTable.Columns["Id"] };
SpriteTable.PrimaryKey = PrimaryKeyColumns;
}
Заполнение
public static bool LoadInventorySpriteDataTable()
{
Sprite[] IS;
IS = Resources.LoadAll<Sprite>("InventorySprites");
foreach (Sprite s in IS)
{
SpriteTable.Rows.Add(Convert.ToInt32(s.name), s);
}
if (SpriteTable.Rows.Count != 0)
{
return true;
}
return false;
}
Считывание
InventoryItems[i.ToString()].ItemGameObject.GetComponent<Image>().sprite =
GlobalStorage.SpriteTable.Select().Where(row => Convert.ToInt32(
row["Id"]) == CurrentItem.Id).First()["Sprite"] as Sprite;
Источник: Stack Overflow на русском