Можно ли из скрипта сделать Texture2D - readable - Форум Игроделов
Вс, 09 Фев 2025, 18:49 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Можно ли из скрипта сделать 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
Трах-ти-би-дох! Так просто. Проверю позже.
Не подходит sad Работает только если текстура натуральная, т.е. файл формата jpg/png... У меня же:
Quote
Загружаем ее из готового ассета.

Т.е. файл формата asset.При этом в строке:
Code
((TextureImporter)TextureImporter.GetAtPath(file)).isReadable = true;

ошибка: Cannot cast from source type to destination type.
 
СообщениеТрах-ти-би-дох! Так просто. Проверю позже.
Не подходит sad Работает только если текстура натуральная, т.е. файл формата jpg/png... У меня же:
Quote
Загружаем ее из готового ассета.

Т.е. файл формата asset.При этом в строке:
Code
((TextureImporter)TextureImporter.GetAtPath(file)).isReadable = true;

ошибка: Cannot cast from source type to destination type.

Автор - seaman
Дата добавления - 06 Мар 2012 в 08:13
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025