.png画像ファイルに変換したいAssetBundleがいくつかあります。
これらはTexture2Dアセットですが、問題は、読み取りを有効にしないため、
var _bytes = _texture2d.EncodeToPNG();
コマンドを実行すると、次のエラーメッセージが表示されます。
テクスチャ 'テクスチャの名前'が読み取れません。スクリプトからテクスチャメモリにアクセスできません。テクスチャのインポート設定でテクスチャを読み取り可能にすることができます。
テクスチャインポート設定はアセットバンドルからのものであり、すべてがコードで作成されているため、実際にはアクセスできません。
誰かがこれの回避策を持っていますか?
ありがとう
プロジェクトでテクスチャを選択し、インスペクタウィンドウを開き、テクスチャタイプを「詳細」に設定し、「読み取りと書き込みを有効」に切り替えます。
実用的な解決策は次のとおりです。
public static void SetTextureImporterFormat( Texture2D texture, bool isReadable)
{
if ( null == texture ) return;
string assetPath = AssetDatabase.GetAssetPath( texture );
var tImporter = AssetImporter.GetAtPath( assetPath ) as TextureImporter;
if ( tImporter != null )
{
tImporter.textureType = TextureImporterType.Advanced;
tImporter.isReadable = isReadable;
AssetDatabase.ImportAsset( assetPath );
AssetDatabase.Refresh();
}
}