Появилась необходимость динамически создавать материалы. Мне посоветовали делать через streamingassets. В unity пишется, что вроде как доступ к Application.StreamingAssetsPath
только для чтения. То есть, мы можем получать файлы, но не можем их загружать. Если через streamingassets никак, то может есть способ из директории брать картинку, из нее делать материал? Кто-нибудь может сталкивался с таким?
Для хранения и загрузки пользовательских данных на устройстве можно использовать Application.persistentDataPath. Это уникальный путь до локального хранилища вашего проекта на устройстве. В него можно записывать что угодно и оно не будет чиститься при обновлении приложения, но пользователь всё ещё сможет почистить его вручную.
Работа с ним осуществляется, как с простой папкой - можете писать туда через методы класса File.
После уточнения вопроса дополняю: Чтобы создать из загруженной текстуры материал можно осуществить следующие действия:
[SerializeField]
MeshRenderer _renderer; //ссылка на рендерер, в который будем устанавливать текстуру
//Допустим, где-то снаружи вы загрузили текстуру(режим Default у картинки) из нужного вам места и передали в этот метод
private void SetTexture(Texture tex)
{
//Ищем шейдер для вашего материала по имени - я закинул для примера мобильный дефьюз.
var shader = Shader.Find("Mobile/Diffuse");
//Создаём новый материал под шейдер
var mat = new Material(shader);
//Устанавливаем в поле шейдера _MainTex свою текстуру. Поле ищется по имени и в большинстве шейдеров поле под текстуру называется так.
mat.SetTexture("_MainTex", tex);
//Назначаем текстуру в рендерер
_renderer.material = mat;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я нашел в интернете такой код но он добавляет по индексу но мне нужно с добавлением и переводом на новую вкладку для пользователя
Имеется код, который таскает UI объект за мышкой по клеточкам,каждая клеточка 25 юнити метров
Как сделать поиск массиве и отображение в компоненте ComboBox? По примеру поисковика Google