Необходимо поменять материал на объекте скриптом. Собственно в чем проблема - сделать все нужно на лету. А юнити подразумевает, что часть работы я делаю мышкой.
Находил и не раз варианты решения, где материал задается публичной переменной класса, а затем из конструктора на поля скрипта перетаскивается ссылка. Отлично, но вот как раз в моей задаче неприемлемо.
Нужно иметь возможность добавить материал из Asseta прямо во время выполнения скрипта, причем ссылка на материал - текстовая. Перебор GetObjectsByTypeIncludingAssets тоже не работает, как надо, так как имеется по 3-4 материала с одинаковым названием, но разными путями. Я понимаю, что можно переназвать все материалы, но проект очень большой.
Есть и обратная сторона - как получить полный путь до ассетового материала. Если использовать Material.name - выдается только название, а хотелось бы путь. Что-то типа Material.FullPath.
Кстати, вопрос не только в материале, есть множество ссылок, которые задаются в Inspector, которые тоже невозможно достать в текстовом виде (например у Cube в MeshFilter назначен Mesh = Cube. Если сделать GetValue , то получим Объект типа Mesh, а не ссылку на Asset).
Как-то сумбурно объяснил((
Итого: Хочу получать ссылки на Asset и применять их к свойствам объектов, но не в виде объектов, а в виде ссылок (совсем в идеале - текстовых, типа "Assets\Materials\Wall\Brick_material")
В общем -то хотелось бы узнать, возможно ли это в принципе, и если возможно, то как?