Можно ли из скрипта сделать Texture2D - readable
seaman Дата: Пн, 05 Мар 2012, 22:03 | Сообщение # 1
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Есть текстура - в инспекторе не сделана readable. Загружаем ее из готового ассета. Можно ли ее сделать readable из скрипта? Знаю, что есть Texture2D.Apply, в которой второй параметр - makeNoLongerReadable Но это не помогает. Более того именно на этот оператор и ругается, что текстура не readable. Пробовал создать временный ассет из текстуры, затем хотел загрузить этот ассет в новую текстуру - не вышло. Говорит, что не может создать ассет, т.к. данная текстура уже в ассете. Больше пока в голову ничего не пришло. Может кто что подскажет?
Сообщение Есть текстура - в инспекторе не сделана readable. Загружаем ее из готового ассета. Можно ли ее сделать readable из скрипта? Знаю, что есть Texture2D.Apply, в которой второй параметр - makeNoLongerReadable Но это не помогает. Более того именно на этот оператор и ругается, что текстура не readable. Пробовал создать временный ассет из текстуры, затем хотел загрузить этот ассет в новую текстуру - не вышло. Говорит, что не может создать ассет, т.к. данная текстура уже в ассете. Больше пока в голову ничего не пришло. Может кто что подскажет? Автор - seaman Дата добавления - 05 Мар 2012 в 22:03
proektEK Дата: Вт, 06 Мар 2012, 00:42 | Сообщение # 2
Сообщений: 493
Награды:
6
Репутация:
193
Статус: Offline
Можно пиксели нужной текстуры записать в файл, создавать новую в памяти, считывать в нее пиксели Code
var texture : Texture2D =new Texture2D (128, 128); renderer.material.mainTexture = texture; texture.SetPixels(считываем пиксели); texture.Apply();
Сообщение Можно пиксели нужной текстуры записать в файл, создавать новую в памяти, считывать в нее пиксели Code
var texture : Texture2D =new Texture2D (128, 128); renderer.material.mainTexture = texture; texture.SetPixels(считываем пиксели); texture.Apply();
Автор - proektEK Дата добавления - 06 Мар 2012 в 00:42
waruiyume Дата: Вт, 06 Мар 2012, 03:04 | Сообщение # 3
Сообщений: 85
Награды:
1
Репутация:
37
Статус: Offline
Code
using UnityEngine; using UnityEditor; public class NewBehaviourScript : MonoBehaviour { public Texture2D tex; [ContextMenu("Unlock")] void Unlock() { UnlockTexture(tex); } public static void UnlockTexture(Texture2D tex) { string path = AssetDatabase.GetAssetPath(tex); ((TextureImporter) TextureImporter.GetAtPath(path)).isReadable = true; AssetDatabase.ImportAsset(path); //тест tex.SetPixels(0,0,50,50,new Color[2500]); tex.Apply(); } }
Найдено здесь .
Сообщение отредактировал waruiyume - Вт, 06 Мар 2012, 03:13
Сообщение Code
using UnityEngine; using UnityEditor; public class NewBehaviourScript : MonoBehaviour { public Texture2D tex; [ContextMenu("Unlock")] void Unlock() { UnlockTexture(tex); } public static void UnlockTexture(Texture2D tex) { string path = AssetDatabase.GetAssetPath(tex); ((TextureImporter) TextureImporter.GetAtPath(path)).isReadable = true; AssetDatabase.ImportAsset(path); //тест tex.SetPixels(0,0,50,50,new Color[2500]); tex.Apply(); } }
Найдено здесь .Автор - waruiyume Дата добавления - 06 Мар 2012 в 03:04
seaman Дата: Вт, 06 Мар 2012, 08:13 | Сообщение # 4
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Трах-ти-би-дох! Так просто. Проверю позже. Не подходит Работает только если текстура натуральная, т.е. файл формата jpg/png... У меня же: Quote
Загружаем ее из готового ассета.
Т.е. файл формата asset.При этом в строке: Code
((TextureImporter)TextureImporter.GetAtPath(file)).isReadable = true;
ошибка: Cannot cast from source type to destination type.
Сообщение Трах-ти-би-дох! Так просто. Проверю позже. Не подходит Работает только если текстура натуральная, т.е. файл формата jpg/png... У меня же: Quote
Загружаем ее из готового ассета.
Т.е. файл формата asset.При этом в строке: Code
((TextureImporter)TextureImporter.GetAtPath(file)).isReadable = true;
ошибка: Cannot cast from source type to destination type. Автор - seaman Дата добавления - 06 Мар 2012 в 08:13