Метод принимающий лист интерфейсов, не принимает лист класса, который его реализиует
public class Inventory : MonoBehaviour
{
[SerializeField] private List<AssetItem> Items;
private void OnEnable()
{
Render( Items); // Ошибка CS1503 Аргумент 1: не удается преобразовать из
//"System.Collections.Generic.List<AssetItem>" в "System.Collections.Generic.List<IItem>
}
private void Render(List<IItem> item)
{
}
}
Реализующий класс
public class AssetItem : ScriptableObject, IItem
{
public string Name => _name;
public Sprite Icon => _icon;
[SerializeField] private string _name;
[SerializeField] private Sprite _icon;
}
Интерфейс
public interface IItem
{
public string Name { get; }
public Sprite Icon { get;}
}
Источник: Stack Overflow на русском