Dav*_*ita 8 c# texture2d unity-game-engine
我有一些AssetBundles,我想转换为.png图像文件.
它们是Texture2D资产,但问题是它们不是Read Enable,当我尝试将它们转换为带有的PNG时
var _bytes = _texture2d.EncodeToPNG();
Run Code Online (Sandbox Code Playgroud)
命令,我收到以下错误信息:
纹理'纹理名称'不可读,无法从脚本访问纹理内存.您可以在纹理导入设置中使纹理可读.
我真的无法访问纹理导入设置,因为它们来自资产包,一切都是用代码制作的.
有人有解决方法吗?
谢谢
Ily*_*ski 12
这是一个有效的解决方案:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在项目中选择纹理,打开检查器窗口,将纹理类型设置为“高级”,切换“启用读写”。
| 归档时间: |
|
| 查看次数: |
20415 次 |
| 最近记录: |