From f1f2430f976e9603112986385a18bb1fdc6a2e93 Mon Sep 17 00:00:00 2001 From: Perfare Date: Sun, 11 Apr 2021 23:49:44 +0800 Subject: [PATCH] Support 2021.1 --- AssetStudio/BuildTarget.cs | 10 ++++++-- AssetStudio/Classes/Material.cs | 13 +++++++++++ AssetStudio/Classes/Renderer.cs | 4 ++++ AssetStudio/Classes/Shader.cs | 40 ++++++++++++++++++++++++++++++-- AssetStudio/Classes/Texture2D.cs | 3 +++ AssetStudio/CommonString.cs | 3 ++- 6 files changed, 68 insertions(+), 5 deletions(-) diff --git a/AssetStudio/BuildTarget.cs b/AssetStudio/BuildTarget.cs index a134f52..634ba2a 100644 --- a/AssetStudio/BuildTarget.cs +++ b/AssetStudio/BuildTarget.cs @@ -7,7 +7,7 @@ namespace AssetStudio { public enum BuildTarget { - UnknownPlatform = 3716, + NoTarget = -2, DashboardWidget = 1, StandaloneOSX = 2, StandaloneOSXPPC = 3, @@ -42,6 +42,12 @@ namespace AssetStudio WiiU, tvOS, Switch, - NoTarget = -2 + Lumin, + Stadia, + CloudRendering, + GameCoreXboxSeries, + GameCoreXboxOne, + PS5, + UnknownPlatform = 9999 } } diff --git a/AssetStudio/Classes/Material.cs b/AssetStudio/Classes/Material.cs index a4be183..78dff83 100644 --- a/AssetStudio/Classes/Material.cs +++ b/AssetStudio/Classes/Material.cs @@ -19,11 +19,14 @@ namespace AssetStudio public class UnityPropertySheet { public KeyValuePair[] m_TexEnvs; + public KeyValuePair[] m_Ints; public KeyValuePair[] m_Floats; public KeyValuePair[] m_Colors; public UnityPropertySheet(ObjectReader reader) { + var version = reader.version; + int m_TexEnvsSize = reader.ReadInt32(); m_TexEnvs = new KeyValuePair[m_TexEnvsSize]; for (int i = 0; i < m_TexEnvsSize; i++) @@ -31,6 +34,16 @@ namespace AssetStudio m_TexEnvs[i] = new KeyValuePair(reader.ReadAlignedString(), new UnityTexEnv(reader)); } + if (version[0] >= 2021) //2021.1 and up + { + int m_IntsSize = reader.ReadInt32(); + m_Ints = new KeyValuePair[m_IntsSize]; + for (int i = 0; i < m_IntsSize; i++) + { + m_Ints[i] = new KeyValuePair(reader.ReadAlignedString(), reader.ReadInt32()); + } + } + int m_FloatsSize = reader.ReadInt32(); m_Floats = new KeyValuePair[m_FloatsSize]; for (int i = 0; i < m_FloatsSize; i++) diff --git a/AssetStudio/Classes/Renderer.cs b/AssetStudio/Classes/Renderer.cs index b751dc1..2899db0 100644 --- a/AssetStudio/Classes/Renderer.cs +++ b/AssetStudio/Classes/Renderer.cs @@ -43,6 +43,10 @@ namespace AssetStudio { var m_DynamicOccludee = reader.ReadByte(); } + if (version[0] >= 2021) //2021.1 and up + { + var m_StaticShadowCaster = reader.ReadByte(); + } var m_MotionVectors = reader.ReadByte(); var m_LightProbeUsage = reader.ReadByte(); var m_ReflectionProbeUsage = reader.ReadByte(); diff --git a/AssetStudio/Classes/Shader.cs b/AssetStudio/Classes/Shader.cs index 5f8d458..08be3dc 100644 --- a/AssetStudio/Classes/Shader.cs +++ b/AssetStudio/Classes/Shader.cs @@ -580,7 +580,14 @@ namespace AssetStudio } if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 2)) //2017.2 and up { - var m_ShaderRequirements = reader.ReadInt32(); + if (version[0] >= 2021) //2021.1 and up + { + var m_ShaderRequirements = reader.ReadInt64(); + } + else + { + var m_ShaderRequirements = reader.ReadInt32(); + } } } } @@ -729,6 +736,18 @@ namespace AssetStudio } } + public class SerializedCustomEditorForRenderPipeline + { + public string customEditorName; + public string renderPipelineType; + + public SerializedCustomEditorForRenderPipeline(BinaryReader reader) + { + customEditorName = reader.ReadAlignedString(); + renderPipelineType = reader.ReadAlignedString(); + } + } + public class SerializedShader { public SerializedProperties m_PropInfo; @@ -737,10 +756,13 @@ namespace AssetStudio public string m_CustomEditorName; public string m_FallbackName; public SerializedShaderDependency[] m_Dependencies; + public SerializedCustomEditorForRenderPipeline[] m_CustomEditorForRenderPipelines; public bool m_DisableNoSubshadersMessage; public SerializedShader(ObjectReader reader) { + var version = reader.version; + m_PropInfo = new SerializedProperties(reader); int numSubShaders = reader.ReadInt32(); @@ -761,6 +783,16 @@ namespace AssetStudio m_Dependencies[i] = new SerializedShaderDependency(reader); } + if (version[0] >= 2021) //2021.1 and up + { + int m_CustomEditorForRenderPipelinesSize = reader.ReadInt32(); + m_CustomEditorForRenderPipelines = new SerializedCustomEditorForRenderPipeline[m_CustomEditorForRenderPipelinesSize]; + for (int i = 0; i < m_CustomEditorForRenderPipelinesSize; i++) + { + m_CustomEditorForRenderPipelines[i] = new SerializedCustomEditorForRenderPipeline(reader); + } + } + m_DisableNoSubshadersMessage = reader.ReadBoolean(); reader.AlignStream(); } @@ -789,7 +821,11 @@ namespace AssetStudio kShaderCompPlatformWiiU = 17, kShaderCompPlatformVulkan = 18, kShaderCompPlatformSwitch = 19, - kShaderCompPlatformXboxOneD3D12 = 20 + kShaderCompPlatformXboxOneD3D12 = 20, + kShaderCompPlatformGameCoreXboxOne = 21, + kShaderCompPlatformGameCoreScarlett = 22, + kShaderCompPlatformPS5 = 23, + kShaderCompPlatformPS5NGGC = 24, }; public class Shader : NamedObject diff --git a/AssetStudio/Classes/Texture2D.cs b/AssetStudio/Classes/Texture2D.cs index c296e8b..f0b4b13 100644 --- a/AssetStudio/Classes/Texture2D.cs +++ b/AssetStudio/Classes/Texture2D.cs @@ -209,5 +209,8 @@ namespace AssetStudio ASTC_HDR_8x8, ASTC_HDR_10x10, ASTC_HDR_12x12, + RG32, + RGB48, + RGBA64 } } \ No newline at end of file diff --git a/AssetStudio/CommonString.cs b/AssetStudio/CommonString.cs index cbcf7cd..f67025c 100644 --- a/AssetStudio/CommonString.cs +++ b/AssetStudio/CommonString.cs @@ -113,7 +113,8 @@ namespace AssetStudio {1093, "m_CorrespondingSourceObject"}, {1121, "m_PrefabInstance"}, {1138, "m_PrefabAsset"}, - {1152, "FileSize"} + {1152, "FileSize"}, + {1161, "Hash128"} }; } }