Improve support of Unity 2023+

This commit is contained in:
VaDiM 2024-09-25 00:26:09 +03:00
parent 348aea2be8
commit fa332b45df
5 changed files with 52 additions and 42 deletions

View File

@ -563,6 +563,9 @@ namespace AssetStudio
case ClassIDType.Avatar:
obj = new Avatar(objectReader);
break;
case ClassIDType.BuildSettings:
obj = new BuildSettings(objectReader);
break;
case ClassIDType.Font:
obj = new Font(objectReader);
break;

View File

@ -45,7 +45,6 @@ namespace AssetStudio
public AnimationCurve(ObjectReader reader, Func<T> readerFunc)
{
var version = reader.version;
int numCurves = reader.ReadInt32();
m_Curve = new Keyframe<T>[numCurves];
for (int i = 0; i < numCurves; i++)
@ -55,7 +54,7 @@ namespace AssetStudio
m_PreInfinity = reader.ReadInt32();
m_PostInfinity = reader.ReadInt32();
if (version >= (5, 3)) //5.3 and up
if (reader.version >= (5, 3)) //5.3 and up
{
m_RotationOrder = reader.ReadInt32();
}
@ -317,13 +316,12 @@ namespace AssetStudio
public FloatCurve(ObjectReader reader)
{
var version = reader.version;
curve = new AnimationCurve<float>(reader, reader.ReadSingle);
attribute = reader.ReadAlignedString();
path = reader.ReadAlignedString();
classID = (ClassIDType)reader.ReadInt32();
script = new PPtr<MonoScript>(reader);
if (version >= (2022, 2)) //2022.2 and up
if (reader.version >= (2022, 2)) //2022.2 and up
{
flags = reader.ReadInt32();
}
@ -357,7 +355,6 @@ namespace AssetStudio
public PPtrCurve(ObjectReader reader)
{
var version = reader.version;
int numCurves = reader.ReadInt32();
curve = new PPtrKeyframe[numCurves];
for (int i = 0; i < numCurves; i++)
@ -369,7 +366,7 @@ namespace AssetStudio
path = reader.ReadAlignedString();
classID = reader.ReadInt32();
script = new PPtr<MonoScript>(reader);
if (version >= (2022, 2)) //2022.2 and up
if (reader.version >= (2022, 2)) //2022.2 and up
{
flags = reader.ReadInt32();
}
@ -506,9 +503,19 @@ namespace AssetStudio
public StreamedClip(ObjectReader reader)
{
var version = reader.version;
data = reader.ReadUInt32Array();
if (version.IsInRange((2022, 3, 19), 2023) //2022.3.19f1 to 2023
|| version >= (2023, 2, 8)) //2023.2.8f1 and up
{
curveCount = reader.ReadUInt16();
var discreteCurveCount = reader.ReadUInt16();
}
else
{
curveCount = reader.ReadUInt32();
}
}
public class StreamedCurveKey
{
@ -644,9 +651,8 @@ namespace AssetStudio
public ValueConstant(ObjectReader reader)
{
var version = reader.version;
m_ID = reader.ReadUInt32();
if (version < (5, 5)) //5.5 down
if (reader.version < (5, 5)) //5.5 down
{
m_TypeID = reader.ReadUInt32();
}
@ -872,6 +878,7 @@ namespace AssetStudio
public byte customType;
public byte isPPtrCurve;
public byte isIntCurve;
public byte isSerializeReferenceCurve;
public GenericBinding() { }
@ -895,6 +902,10 @@ namespace AssetStudio
{
isIntCurve = reader.ReadByte();
}
if (version >= (2022, 2)) //2022.2 and up
{
isSerializeReferenceCurve = reader.ReadByte();
}
reader.AlignStream();
}
}
@ -973,14 +984,12 @@ namespace AssetStudio
public AnimationEvent(ObjectReader reader)
{
var version = reader.version;
time = reader.ReadSingle();
functionName = reader.ReadAlignedString();
data = reader.ReadAlignedString();
objectReferenceParameter = new PPtr<Object>(reader);
floatParameter = reader.ReadSingle();
if (version >= 3) //3 and up
if (reader.version >= 3) //3 and up
{
intParameter = reader.ReadInt32();
}
@ -1052,8 +1061,7 @@ namespace AssetStudio
else if (version >= 4)//4.0 and up
{
m_AnimationType = (AnimationType)reader.ReadInt32();
if (m_AnimationType == AnimationType.Legacy)
m_Legacy = true;
m_Legacy = m_AnimationType == AnimationType.Legacy;
}
else
{

View File

@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AssetStudio
namespace AssetStudio
{
public sealed class Animator : Behaviour
{
@ -35,6 +30,10 @@ namespace AssetStudio
{
var m_StabilizeFeet = reader.ReadBoolean();
}
if (version >= (2023, 1)) //2023.1 and up
{
var m_AnimatePhysics = reader.ReadBoolean();
}
reader.AlignStream();
}

View File

@ -1,24 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AssetStudio
namespace AssetStudio
{
public sealed class BuildSettings : Object
{
public string m_Version;
public string[] levels;
public string[] scenes;
public BuildSettings(ObjectReader reader) : base(reader)
{
var levels = reader.ReadStringArray();
var hasRenderTexture = reader.ReadBoolean();
var hasPROVersion = reader.ReadBoolean();
var hasPublishingRights = reader.ReadBoolean();
var hasShadows = reader.ReadBoolean();
m_Version = reader.ReadAlignedString();
if (reader.version < (5, 1)) //5.1 down
{
levels = reader.ReadStringArray();
}
else
{
scenes = reader.ReadStringArray();
}
}
}
}

View File

@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AssetStudio
namespace AssetStudio
{
public class StaticBatchInfo
{
@ -58,6 +53,15 @@ namespace AssetStudio
{
var m_RayTraceProcedural = reader.ReadByte();
}
if (version >= (2023, 2)) //2023.2 and up
{
var m_RayTracingAccelStructBuildFlagsOverride = reader.ReadByte();
var m_RayTracingAccelStructBuildFlags = reader.ReadByte();
}
if (version >= (2023, 3)) //2023.3 and up
{
var m_SmallMeshCulling = reader.ReadByte();
}
reader.AlignStream();
}
else