mirror of
https://github.com/sinai-dev/UnityExplorer.git
synced 2025-01-06 01:23:31 +08:00
Fix Texture2D saver in Mono and for non-readable textures
This commit is contained in:
parent
ad7b05f721
commit
3b4ea31b50
@ -16,7 +16,7 @@ namespace UnityExplorer
|
||||
public class ExplorerCore
|
||||
{
|
||||
public const string NAME = "UnityExplorer";
|
||||
public const string VERSION = "3.1.2";
|
||||
public const string VERSION = "3.1.3";
|
||||
public const string AUTHOR = "Sinai";
|
||||
public const string GUID = "com.sinai.unityexplorer";
|
||||
public const string EXPLORER_FOLDER = @"Mods\UnityExplorer";
|
||||
|
@ -15,6 +15,16 @@ namespace UnityExplorer.Helpers
|
||||
private static MethodInfo EncodeToPNGMethod => m_encodeToPNGMethod ?? GetEncodeToPNGMethod();
|
||||
private static MethodInfo m_encodeToPNGMethod;
|
||||
|
||||
public static byte[] EncodeToPNGSafe(this Texture2D tex)
|
||||
{
|
||||
var method = EncodeToPNGMethod;
|
||||
|
||||
if (method.IsStatic)
|
||||
return (byte[])method.Invoke(null, new object[] { tex });
|
||||
else
|
||||
return (byte[])method.Invoke(tex, new object[0]);
|
||||
}
|
||||
|
||||
private static MethodInfo GetEncodeToPNGMethod()
|
||||
{
|
||||
if (ReflectionHelpers.GetTypeByName("UnityEngine.ImageConversion") is Type imageConversion)
|
||||
|
@ -272,7 +272,14 @@ namespace UnityExplorer.Inspectors.Reflection
|
||||
if (File.Exists(path))
|
||||
File.Delete(path);
|
||||
|
||||
var data = tex.EncodeToPNG();
|
||||
if (!tex.IsReadable())
|
||||
tex = Texture2DHelpers.ForceReadTexture(tex);
|
||||
#if CPP
|
||||
byte[] data = tex.EncodeToPNG();
|
||||
#else
|
||||
byte[] data = tex.EncodeToPNGSafe();
|
||||
#endif
|
||||
|
||||
File.WriteAllBytes(path, data);
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user