есть List<ScriptableObject> objectsToPersist;
Как мне из листа с SO Объектами получить доступ к классу PlayersData?
List<PlayersData> должно быть
это понятно, но мне в моем примере нужен именно обратный, через SO
вот это хз, сам не знаю, не сталкивался с таким
Когда берешь элемент SO из List, либо используй приведение типов. Либо проверку через IS.
If (objectToPersist[i].TryToGetComponent(out PlayersData data)) { data.DoMethod(); } Возможно ошибся где-то т.к писал по памяти
Если вопрос еще актуален, можно найти объект конкретного типа, используя LINQ using System.Linq; ... var playersData = objectsToPersist.FirstOrDefault(so => so.GetType() == typeof(PlayersData)) as PlayersData;
objectsToPersist.OfType<>
сравнение может быть типа so is PlayerData
Не знал, что есть еще проще вариант. Для себя тоже что-то почерпнул, спасибо)
Можно ещё условия писать типа if (so is PlayerData playerDataSo) то у тебя если условие истинно уже будет новая переменная с нужным типом из SO
А этот метод нормально работает, если в листе есть элементы классов, дочерних к искомому? В документации написано, что он осуществляет фильтрацию, определяя, возможно ли закастить элемент в заданный тип, соответственно, сабклассы тоже могут пройти проверку?
Обсуждают сегодня