public ConditionConstant(ObjectReader reader) { m_ConditionMode = reader.ReadUInt32(); m_EventID = reader.ReadUInt32(); m_EventThreshold = reader.ReadSingle(); m_ExitTime = reader.ReadSingle(); }
public BlendTreeNodeConstant(ObjectReader reader) { var version = reader.version; m_BlendType = reader.ReadUInt32(); m_BlendEventID = reader.ReadUInt32(); m_BlendEventYID = reader.ReadUInt32(); m_ChildIndices = reader.ReadUInt32Array(reader.ReadInt32()); m_Blend1dData = new Blend1dDataConstant(reader); m_Blend2dData = new Blend2dDataConstant(reader); if (version[0] >= 5) //5.0 and up { m_BlendDirectData = new BlendDirectDataConstant(reader); } m_ClipID = reader.ReadUInt32(); if (version[0] < 5) //5.0 down { m_ClipIndex = reader.ReadUInt32(); } m_Duration = reader.ReadSingle(); m_CycleOffset = reader.ReadSingle(); m_Mirror = reader.ReadBoolean(); reader.AlignStream(4); }
public DenseClip(ObjectReader reader) { m_FrameCount = reader.ReadInt32(); m_CurveCount = reader.ReadUInt32(); m_SampleRate = reader.ReadSingle(); m_BeginTime = reader.ReadSingle(); m_SampleArray = reader.ReadSingleArray(); }
public HandPose(ObjectReader reader) { m_GrabX = new xform(reader); m_DoFArray = reader.ReadSingleArray(); m_Override = reader.ReadSingle(); m_CloseOpen = reader.ReadSingle(); m_InOut = reader.ReadSingle(); m_Grab = reader.ReadSingle(); }
public Collider(ObjectReader reader) { m_X = new xform(reader); m_Type = reader.ReadUInt32(); m_XMotionType = reader.ReadUInt32(); m_YMotionType = reader.ReadUInt32(); m_ZMotionType = reader.ReadUInt32(); m_MinLimitX = reader.ReadSingle(); m_MaxLimitX = reader.ReadSingle(); m_MaxLimitY = reader.ReadSingle(); m_MaxLimitZ = reader.ReadSingle(); }
public HumanGoal(ObjectReader reader) { var version = reader.version; m_X = new xform(reader); m_WeightT = reader.ReadSingle(); m_WeightR = reader.ReadSingle(); if (version[0] >= 5) //5.0 and up { m_HintT = version[0] > 5 || (version[0] == 5 && version[1] >= 4) ? (object)reader.ReadVector3() : (object)reader.ReadVector4(); //5.4 and up m_HintWeightT = reader.ReadSingle(); } }
public PackedFloatVector(ObjectReader reader) { m_NumItems = reader.ReadUInt32(); m_Range = reader.ReadSingle(); m_Start = reader.ReadSingle(); int numData = reader.ReadInt32(); m_Data = reader.ReadBytes(numData); reader.AlignStream(4); m_BitSize = reader.ReadByte(); reader.AlignStream(4); }
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[0] >= 3) //3 and up { intParameter = reader.ReadInt32(); } messageOptions = reader.ReadInt32(); }
public SpriteAtlasData(ObjectReader reader) { var version = reader.version; texture = new PPtr <Texture2D>(reader); alphaTexture = new PPtr <Texture2D>(reader); textureRect = new Rectf(reader); textureRectOffset = reader.ReadVector2(); if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 2)) //2017.2 and up { atlasRectOffset = reader.ReadVector2(); } uvTransform = reader.ReadVector4(); downscaleMultiplier = reader.ReadSingle(); settingsRaw = new SpriteSettings(reader); if (version[0] > 2020 || (version[0] == 2020 && version[1] >= 2)) //2020.2 and up { var secondaryTexturesSize = reader.ReadInt32(); secondaryTextures = new SecondarySpriteTexture[secondaryTexturesSize]; for (int i = 0; i < secondaryTexturesSize; i++) { secondaryTextures[i] = new SecondarySpriteTexture(reader); } reader.AlignStream(); } }
public AudioClip(ObjectReader reader) : base(reader) { if (version[0] < 5) { m_Format = reader.ReadInt32(); m_Type = (AudioType)reader.ReadInt32(); m_3D = reader.ReadBoolean(); m_UseHardware = reader.ReadBoolean(); reader.AlignStream(4); if (version[0] >= 4 || (version[0] == 3 && version[1] >= 2)) //3.2.0 to 5 { int m_Stream = reader.ReadInt32(); m_Size = reader.ReadInt32(); var tsize = m_Size % 4 != 0 ? m_Size + 4 - m_Size % 4 : m_Size; if (reader.byteSize + reader.byteStart - reader.Position != tsize) { m_Offset = reader.ReadInt32(); m_Source = assetsFile.fullName + ".resS"; } } else { m_Size = reader.ReadInt32(); } } else { m_LoadType = reader.ReadInt32(); m_Channels = reader.ReadInt32(); m_Frequency = reader.ReadInt32(); m_BitsPerSample = reader.ReadInt32(); m_Length = reader.ReadSingle(); m_IsTrackerFormat = reader.ReadBoolean(); reader.AlignStream(4); m_SubsoundIndex = reader.ReadInt32(); m_PreloadAudioData = reader.ReadBoolean(); m_LoadInBackground = reader.ReadBoolean(); m_Legacy3D = reader.ReadBoolean(); reader.AlignStream(4); m_3D = m_Legacy3D; m_Source = reader.ReadAlignedString(); m_Offset = reader.ReadInt64(); m_Size = reader.ReadInt64(); m_CompressionFormat = (AudioCompressionFormat)reader.ReadInt32(); } ResourceReader resourceReader; if (!string.IsNullOrEmpty(m_Source)) { resourceReader = new ResourceReader(m_Source, assetsFile, m_Offset, (int)m_Size); } else { resourceReader = new ResourceReader(reader, reader.BaseStream.Position, (int)m_Size); } m_AudioData = new Lazy <byte[]>(resourceReader.GetData); }
public BlendTreeNodeConstant(ObjectReader reader) { var version = reader.version; if (version[0] > 4 || (version[0] == 4 && version[1] >= 1)) //4.1 and up { m_BlendType = reader.ReadUInt32(); } m_BlendEventID = reader.ReadUInt32(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 1)) //4.1 and up { m_BlendEventYID = reader.ReadUInt32(); } m_ChildIndices = reader.ReadUInt32Array(); if (version[0] < 4 || (version[0] == 4 && version[1] < 1)) //4.1 down { m_ChildThresholdArray = reader.ReadSingleArray(); } if (version[0] > 4 || (version[0] == 4 && version[1] >= 1)) //4.1 and up { m_Blend1dData = new Blend1dDataConstant(reader); m_Blend2dData = new Blend2dDataConstant(reader); } if (version[0] >= 5) //5.0 and up { m_BlendDirectData = new BlendDirectDataConstant(reader); } m_ClipID = reader.ReadUInt32(); if (version[0] == 4 && version[1] >= 5) //4.5 - 5.0 { m_ClipIndex = reader.ReadUInt32(); } m_Duration = reader.ReadSingle(); if (version[0] > 4 || (version[0] == 4 && version[1] > 1) || (version[0] == 4 && version[1] == 1 && version[2] >= 3)) //4.1.3 and up { m_CycleOffset = reader.ReadSingle(); m_Mirror = reader.ReadBoolean(); reader.AlignStream(); } }
public Transform(ObjectReader reader) : base(reader) { m_LocalRotation = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() }; m_LocalPosition = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() }; m_LocalScale = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() }; int m_ChildrenCount = reader.ReadInt32(); m_Children = new List <PPtr>(m_ChildrenCount); for (int j = 0; j < m_ChildrenCount; j++) { m_Children.Add(reader.ReadPPtr()); } m_Father = reader.ReadPPtr(); }
public TransitionConstant(ObjectReader reader) { var version = reader.version; int numConditions = reader.ReadInt32(); m_ConditionConstantArray = new ConditionConstant[numConditions]; for (int i = 0; i < numConditions; i++) { m_ConditionConstantArray[i] = new ConditionConstant(reader); } m_DestinationState = reader.ReadUInt32(); if (version[0] >= 5) //5.0 and up { m_FullPathID = reader.ReadUInt32(); } m_ID = reader.ReadUInt32(); m_UserID = reader.ReadUInt32(); m_TransitionDuration = reader.ReadSingle(); m_TransitionOffset = reader.ReadSingle(); if (version[0] >= 5) //5.0 and up { m_ExitTime = reader.ReadSingle(); m_HasExitTime = reader.ReadBoolean(); m_HasFixedDuration = reader.ReadBoolean(); reader.AlignStream(); m_InterruptionSource = reader.ReadInt32(); m_OrderedInterruption = reader.ReadBoolean(); } else { m_Atomic = reader.ReadBoolean(); } if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { m_CanTransitionToSelf = reader.ReadBoolean(); } reader.AlignStream(); }
public Human(ObjectReader reader) { var version = reader.version; m_RootX = new xform(reader); m_Skeleton = new Skeleton(reader); m_SkeletonPose = new SkeletonPose(reader); m_LeftHand = new Hand(reader); m_RightHand = new Hand(reader); if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2)) //2018.2 down { var numHandles = reader.ReadInt32(); m_Handles = new Handle[numHandles]; for (var i = 0; i < numHandles; i++) { m_Handles[i] = new Handle(reader); } var numColliders = reader.ReadInt32(); m_ColliderArray = new Collider[numColliders]; for (var i = 0; i < numColliders; i++) { m_ColliderArray[i] = new Collider(reader); } } m_HumanBoneIndex = reader.ReadInt32Array(); m_HumanBoneMass = reader.ReadSingleArray(); if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2)) //2018.2 down { m_ColliderIndex = reader.ReadInt32Array(); } m_Scale = reader.ReadSingle(); m_ArmTwist = reader.ReadSingle(); m_ForeArmTwist = reader.ReadSingle(); m_UpperLegTwist = reader.ReadSingle(); m_LegTwist = reader.ReadSingle(); m_ArmStretch = reader.ReadSingle(); m_LegStretch = reader.ReadSingle(); m_FeetSpacing = reader.ReadSingle(); m_HasLeftHand = reader.ReadBoolean(); m_HasRightHand = reader.ReadBoolean(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 2)) //5.2 and up { m_HasTDoF = reader.ReadBoolean(); } reader.AlignStream(); }
public Sprite(ObjectReader reader) : base(reader) { m_Rect = reader.ReadRectangleF(); m_Offset = reader.ReadVector2(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { m_Border = reader.ReadVector4(); } m_PixelsToUnits = reader.ReadSingle(); if (version[0] > 5 || (version[0] == 5 && version[1] > 4) || (version[0] == 5 && version[1] == 4 && version[2] >= 2)) //5.4.2 and up { m_Pivot = reader.ReadVector2(); } m_Extrude = reader.ReadUInt32(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 3)) //5.3 and up { m_IsPolygon = reader.ReadBoolean(); reader.AlignStream(4); } if (version[0] >= 2017) //2017 and up { var first = new Guid(reader.ReadBytes(16)); var second = reader.ReadInt64(); m_RenderDataKey = new KeyValuePair <Guid, long>(first, second); var m_AtlasTagsSize = reader.ReadInt32(); m_AtlasTags = new string[m_AtlasTagsSize]; for (int i = 0; i < m_AtlasTagsSize; i++) { m_AtlasTags[i] = reader.ReadAlignedString(); } m_SpriteAtlas = new PPtr <SpriteAtlas>(reader); } m_RD = new SpriteRenderData(reader); if (version[0] >= 2017) //2017 and up { var m_PhysicsShapeSize = reader.ReadInt32(); m_PhysicsShape = new Vector2[m_PhysicsShapeSize][]; for (int i = 0; i < m_PhysicsShapeSize; i++) { m_PhysicsShape[i] = reader.ReadVector2Array(reader.ReadInt32()); } } //vector m_Bones 2018 and up }
public ClipMuscleConstant(ObjectReader reader) { var version = reader.version; m_DeltaPose = new HumanPose(reader); m_StartX = new xform(reader); if (version[0] > 5 || (version[0] == 5 && version[1] >= 5))//5.5 and up { m_StopX = new xform(reader); } m_LeftFootStartX = new xform(reader); m_RightFootStartX = new xform(reader); if (version[0] < 5)//5.0 down { m_MotionStartX = new xform(reader); m_MotionStopX = new xform(reader); } m_AverageSpeed = version[0] > 5 || (version[0] == 5 && version[1] >= 4) ? reader.ReadVector3() : (Vector3)reader.ReadVector4();//5.4 and up m_Clip = new Clip(reader); m_StartTime = reader.ReadSingle(); m_StopTime = reader.ReadSingle(); m_OrientationOffsetY = reader.ReadSingle(); m_Level = reader.ReadSingle(); m_CycleOffset = reader.ReadSingle(); m_AverageAngularSpeed = reader.ReadSingle(); m_IndexArray = reader.ReadInt32Array(); if (version[0] < 4 || (version[0] == 4 && version[1] < 3)) //4.3 down { var m_AdditionalCurveIndexArray = reader.ReadInt32Array(); } int numDeltas = reader.ReadInt32(); m_ValueArrayDelta = new List <ValueDelta>(numDeltas); for (int i = 0; i < numDeltas; i++) { m_ValueArrayDelta.Add(new ValueDelta(reader)); } if (version[0] > 5 || (version[0] == 5 && version[1] >= 3))//5.3 and up { m_ValueArrayReferencePose = reader.ReadSingleArray(); } m_Mirror = reader.ReadBoolean(); m_LoopTime = reader.ReadBoolean(); m_LoopBlend = reader.ReadBoolean(); m_LoopBlendOrientation = reader.ReadBoolean(); m_LoopBlendPositionY = reader.ReadBoolean(); m_LoopBlendPositionXZ = reader.ReadBoolean(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 5))//5.5 and up { m_StartAtOrigin = reader.ReadBoolean(); } m_KeepOriginalOrientation = reader.ReadBoolean(); m_KeepOriginalPositionY = reader.ReadBoolean(); m_KeepOriginalPositionXZ = reader.ReadBoolean(); m_HeightFromFeet = reader.ReadBoolean(); reader.AlignStream(); }
public Human(ObjectReader reader) { var version = reader.version; m_RootX = new xform(reader); m_Skeleton = new Skeleton(reader); m_SkeletonPose = new SkeletonPose(reader); m_LeftHand = new Hand(reader); m_RightHand = new Hand(reader); if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2)) //2018.2 down { int numHandles = reader.ReadInt32(); m_Handles = new List <Handle>(numHandles); for (int i = 0; i < numHandles; i++) { m_Handles.Add(new Handle(reader)); } int numColliders = reader.ReadInt32(); m_ColliderArray = new List <Collider>(numColliders); for (int i = 0; i < numColliders; i++) { m_ColliderArray.Add(new Collider(reader)); } } m_HumanBoneIndex = reader.ReadInt32Array(); m_HumanBoneMass = reader.ReadSingleArray(); if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2)) //2018.2 down { m_ColliderIndex = reader.ReadInt32Array(); } m_Scale = reader.ReadSingle(); m_ArmTwist = reader.ReadSingle(); m_ForeArmTwist = reader.ReadSingle(); m_UpperLegTwist = reader.ReadSingle(); m_LegTwist = reader.ReadSingle(); m_ArmStretch = reader.ReadSingle(); m_LegStretch = reader.ReadSingle(); m_FeetSpacing = reader.ReadSingle(); m_HasLeftHand = reader.ReadBoolean(); m_HasRightHand = reader.ReadBoolean(); m_HasTDoF = reader.ReadBoolean(); reader.AlignStream(); }
public Keyframe(ObjectReader reader, Func <T> readerFunc) { time = reader.ReadSingle(); value = readerFunc(); inSlope = readerFunc(); outSlope = readerFunc(); if (reader.version[0] >= 2018) { weightedMode = reader.ReadInt32(); inWeight = readerFunc(); outWeight = readerFunc(); } }
public LayerConstant(ObjectReader reader) { m_StateMachineIndex = reader.ReadUInt32(); m_StateMachineMotionSetIndex = reader.ReadUInt32(); m_BodyMask = new HumanPoseMask(reader); m_SkeletonMask = new SkeletonMask(reader); m_Binding = reader.ReadUInt32(); m_LayerBlendingMode = reader.ReadInt32(); m_DefaultWeight = reader.ReadSingle(); m_IKPass = reader.ReadBoolean(); m_SyncedLayerAffectsTiming = reader.ReadBoolean(); reader.AlignStream(4); }
public SpriteAtlasData(ObjectReader reader) { var version = reader.version; texture = new PPtr <Texture2D>(reader); alphaTexture = new PPtr <Texture2D>(reader); textureRect = reader.ReadRectangleF(); textureRectOffset = reader.ReadVector2(); if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 2)) //2017.2 and up { atlasRectOffset = reader.ReadVector2(); } uvTransform = reader.ReadVector4(); downscaleMultiplier = reader.ReadSingle(); settingsRaw = new SpriteSettings(reader); }
public Axes(ObjectReader reader) { var version = reader.version; m_PreQ = reader.ReadVector4(); m_PostQ = reader.ReadVector4(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 4)) //5.4 and up { m_Sgn = reader.ReadVector3(); } else { m_Sgn = reader.ReadVector4(); } m_Limit = new Limit(reader); m_Length = reader.ReadSingle(); m_Type = reader.ReadUInt32(); }
public GLTextureSettings(ObjectReader reader) { var version = reader.version; m_FilterMode = reader.ReadInt32(); m_Aniso = reader.ReadInt32(); m_MipBias = reader.ReadSingle(); if (version[0] >= 2017) //2017.x and up { m_WrapMode = reader.ReadInt32(); //m_WrapU int m_WrapV = reader.ReadInt32(); int m_WrapW = reader.ReadInt32(); } else { m_WrapMode = reader.ReadInt32(); } }
public LayerConstant(ObjectReader reader) { var version = reader.version; m_StateMachineIndex = reader.ReadUInt32(); m_StateMachineMotionSetIndex = reader.ReadUInt32(); m_BodyMask = new HumanPoseMask(reader); m_SkeletonMask = new SkeletonMask(reader); m_Binding = reader.ReadUInt32(); m_LayerBlendingMode = reader.ReadInt32(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 2)) //4.2 and up { m_DefaultWeight = reader.ReadSingle(); } m_IKPass = reader.ReadBoolean(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 2)) //4.2 and up { m_SyncedLayerAffectsTiming = reader.ReadBoolean(); } reader.AlignStream(); }
public SkinnedMeshRenderer(ObjectReader reader) : base(reader) { int m_Quality = reader.ReadInt32(); var m_UpdateWhenOffscreen = reader.ReadBoolean(); var m_SkinNormals = reader.ReadBoolean(); //3.1.0 and below reader.AlignStream(4); if (version[0] == 2 && version[1] < 6)//2.6 down { var m_DisableAnimationWhenOffscreen = new PPtr <Animation>(reader); } m_Mesh = new PPtr <Mesh>(reader); m_Bones = new PPtr <Transform> [reader.ReadInt32()]; for (int b = 0; b < m_Bones.Length; b++) { m_Bones[b] = new PPtr <Transform>(reader); } if (version[0] < 3) { int m_BindPose = reader.ReadInt32(); reader.Position += m_BindPose * 16 * 4;//Matrix4x4f } else { if (version[0] > 4 || (version[0] == 4 && version[1] >= 3))//4.3 and up { int numBSWeights = reader.ReadInt32(); m_BlendShapeWeights = new List <float>(numBSWeights); for (int i = 0; i < numBSWeights; i++) { m_BlendShapeWeights.Add(reader.ReadSingle()); } } } }
public AudioClip(ObjectReader reader, bool readData) : base(reader) { if (version[0] < 5) { m_Format = reader.ReadInt32(); m_Type = (AudioType)reader.ReadInt32(); m_3D = reader.ReadBoolean(); m_UseHardware = reader.ReadBoolean(); reader.AlignStream(4); if (version[0] >= 4 || (version[0] == 3 && version[1] >= 2)) //3.2.0 to 5 { int m_Stream = reader.ReadInt32(); m_Size = reader.ReadInt32(); var tsize = m_Size % 4 != 0 ? m_Size + 4 - m_Size % 4 : m_Size; if (reader.byteSize + reader.byteStart - reader.Position != tsize) { m_Offset = reader.ReadInt32(); m_Source = sourceFile.filePath + ".resS"; } } else { m_Size = reader.ReadInt32(); } } else { m_LoadType = reader.ReadInt32(); m_Channels = reader.ReadInt32(); m_Frequency = reader.ReadInt32(); m_BitsPerSample = reader.ReadInt32(); m_Length = reader.ReadSingle(); m_IsTrackerFormat = reader.ReadBoolean(); reader.AlignStream(4); m_SubsoundIndex = reader.ReadInt32(); m_PreloadAudioData = reader.ReadBoolean(); m_LoadInBackground = reader.ReadBoolean(); m_Legacy3D = reader.ReadBoolean(); reader.AlignStream(4); m_3D = m_Legacy3D; m_Source = reader.ReadAlignedString(); m_Offset = reader.ReadInt64(); m_Size = reader.ReadInt64(); m_CompressionFormat = (AudioCompressionFormat)reader.ReadInt32(); } if (readData) { if (!string.IsNullOrEmpty(m_Source)) { m_AudioData = ResourcesHelper.GetData(m_Source, sourceFile.filePath, m_Offset, (int)m_Size); } else { if (m_Size > 0) { m_AudioData = reader.ReadBytes((int)m_Size); } } } }
public StateConstant(ObjectReader reader) { var version = reader.version; int numTransistions = reader.ReadInt32(); m_TransitionConstantArray = new TransitionConstant[numTransistions]; for (int i = 0; i < numTransistions; i++) { m_TransitionConstantArray[i] = new TransitionConstant(reader); } m_BlendTreeConstantIndexArray = reader.ReadInt32Array(); if (version[0] < 5 || (version[0] == 5 && version[1] < 2)) //5.2 down { int numInfos = reader.ReadInt32(); m_LeafInfoArray = new LeafInfoConstant[numInfos]; for (int i = 0; i < numInfos; i++) { m_LeafInfoArray[i] = new LeafInfoConstant(reader); } } int numBlends = reader.ReadInt32(); m_BlendTreeConstantArray = new BlendTreeConstant[numBlends]; for (int i = 0; i < numBlends; i++) { m_BlendTreeConstantArray[i] = new BlendTreeConstant(reader); } m_NameID = reader.ReadUInt32(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 3)) //4.3 and up { m_PathID = reader.ReadUInt32(); } if (version[0] >= 5) //5.0 and up { m_FullPathID = reader.ReadUInt32(); } m_TagID = reader.ReadUInt32(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 1)) //5.1 and up { m_SpeedParamID = reader.ReadUInt32(); m_MirrorParamID = reader.ReadUInt32(); m_CycleOffsetParamID = reader.ReadUInt32(); } if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 2)) //2017.2 and up { var m_TimeParamID = reader.ReadUInt32(); } m_Speed = reader.ReadSingle(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 1)) //4.1 and up { m_CycleOffset = reader.ReadSingle(); } m_IKOnFeet = reader.ReadBoolean(); if (version[0] >= 5) //5.0 and up { m_WriteDefaultValues = reader.ReadBoolean(); } m_Loop = reader.ReadBoolean(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 1)) //4.1 and up { m_Mirror = reader.ReadBoolean(); } reader.AlignStream(); }
public SkeletonMaskElement(ObjectReader reader) { m_PathHash = reader.ReadUInt32(); m_Weight = reader.ReadSingle(); }
public UnityPropertySheet(ObjectReader reader) { int m_TexEnvsSize = reader.ReadInt32(); m_TexEnvs = new KeyValuePair <string, UnityTexEnv> [m_TexEnvsSize]; for (int i = 0; i < m_TexEnvsSize; i++) { m_TexEnvs[i] = new KeyValuePair <string, UnityTexEnv>(reader.ReadAlignedString(), new UnityTexEnv(reader)); } int m_FloatsSize = reader.ReadInt32(); m_Floats = new KeyValuePair <string, float> [m_FloatsSize]; for (int i = 0; i < m_FloatsSize; i++) { m_Floats[i] = new KeyValuePair <string, float>(reader.ReadAlignedString(), reader.ReadSingle()); } int m_ColorsSize = reader.ReadInt32(); m_Colors = new KeyValuePair <string, Color> [m_ColorsSize]; for (int i = 0; i < m_ColorsSize; i++) { m_Colors[i] = new KeyValuePair <string, Color>(reader.ReadAlignedString(), reader.ReadColor4()); } }
private static void DumpType(TypeSig typeSig, StringBuilder sb, ObjectReader reader, string name, int indent, bool isRoot = false) { var typeDef = typeSig.ToTypeDefOrRef().ResolveTypeDefThrow(); if (typeSig.IsPrimitive) { object value = null; switch (typeSig.TypeName) { case "Boolean": value = reader.ReadBoolean(); break; case "Byte": value = reader.ReadByte(); break; case "SByte": value = reader.ReadSByte(); break; case "Int16": value = reader.ReadInt16(); break; case "UInt16": value = reader.ReadUInt16(); break; case "Int32": value = reader.ReadInt32(); break; case "UInt32": value = reader.ReadUInt32(); break; case "Int64": value = reader.ReadInt64(); break; case "UInt64": value = reader.ReadUInt64(); break; case "Single": value = reader.ReadSingle(); break; case "Double": value = reader.ReadDouble(); break; case "Char": value = reader.ReadChar(); break; } reader.AlignStream(4); sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name} = {value}"); return; } if (typeSig.FullName == "System.String") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name} = \"{reader.ReadAlignedString()}\""); return; } if (typeSig.FullName == "System.Object") { return; } if (typeDef.IsDelegate) { return; } if (typeSig is ArraySigBase) { if (!typeDef.IsEnum && !IsBaseType(typeDef) && !IsAssignFromUnityObject(typeDef) && !IsEngineType(typeDef) && !typeDef.IsSerializable) { return; } var size = reader.ReadInt32(); sb.AppendLine($"{new string('\t', indent)}{typeSig.TypeName} {name}"); sb.AppendLine($"{new string('\t', indent + 1)}Array Array"); sb.AppendLine($"{new string('\t', indent + 1)}int size = {size}"); for (int i = 0; i < size; i++) { sb.AppendLine($"{new string('\t', indent + 2)}[{i}]"); DumpType(typeDef.ToTypeSig(), sb, reader, "data", indent + 2); } return; } if (!isRoot && typeSig is GenericInstSig genericInstSig) { if (genericInstSig.GenericArguments.Count == 1) { var type = genericInstSig.GenericArguments[0].ToTypeDefOrRef().ResolveTypeDefThrow(); if (!type.IsEnum && !IsBaseType(type) && !IsAssignFromUnityObject(type) && !IsEngineType(type) && !type.IsSerializable) { return; } var size = reader.ReadInt32(); sb.AppendLine($"{new string('\t', indent)}{typeSig.TypeName} {name}"); sb.AppendLine($"{new string('\t', indent + 1)}Array Array"); sb.AppendLine($"{new string('\t', indent + 1)}int size = {size}"); for (int i = 0; i < size; i++) { sb.AppendLine($"{new string('\t', indent + 2)}[{i}]"); DumpType(genericInstSig.GenericArguments[0], sb, reader, "data", indent + 2); } } return; } if (indent != -1 && IsAssignFromUnityObject(typeDef)) { var pptr = reader.ReadPPtr(); sb.AppendLine($"{new string('\t', indent)}PPtr<{typeDef.Name}> {name} = {{fileID: {pptr.m_FileID}, pathID: {pptr.m_PathID}}}"); return; } if (typeDef.IsEnum) { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name} = {reader.ReadUInt32()}"); return; } if (indent != -1 && !IsEngineType(typeDef) && !typeDef.IsSerializable) { return; } if (typeDef.FullName == "UnityEngine.Rect") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); var rect = reader.ReadSingleArray(4); return; } if (typeDef.FullName == "UnityEngine.LayerMask") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); var value = reader.ReadInt32(); return; } if (typeDef.FullName == "UnityEngine.AnimationCurve") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); var animationCurve = new AnimationCurve <float>(reader, reader.ReadSingle); return; } if (typeDef.FullName == "UnityEngine.Gradient") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); if (reader.version[0] == 5 && reader.version[1] < 5) { reader.Position += 68; } else if (reader.version[0] == 5 && reader.version[1] < 6) { reader.Position += 72; } else { reader.Position += 168; } return; } if (typeDef.FullName == "UnityEngine.RectOffset") { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); var left = reader.ReadSingle(); var right = reader.ReadSingle(); var top = reader.ReadSingle(); var bottom = reader.ReadSingle(); return; } if (typeDef.FullName == "UnityEngine.GUIStyle") //TODO { throw new NotSupportedException(); } if (typeDef.IsClass || typeDef.IsValueType) { if (name != null && indent != -1) { sb.AppendLine($"{new string('\t', indent)}{typeDef.Name} {name}"); } if (indent == -1 && typeDef.BaseType.FullName != "UnityEngine.Object") { DumpType(typeDef.BaseType.ToTypeSig(), sb, reader, null, indent, true); } if (indent != -1 && typeDef.BaseType.FullName != "System.Object") { DumpType(typeDef.BaseType.ToTypeSig(), sb, reader, null, indent, true); } foreach (var fieldDef in typeDef.Fields) { var access = fieldDef.Access & FieldAttributes.FieldAccessMask; if (access != FieldAttributes.Public) { if (fieldDef.CustomAttributes.Any(x => x.TypeFullName.Contains("SerializeField"))) { DumpType(fieldDef.FieldType, sb, reader, fieldDef.Name, indent + 1); } } else if ((fieldDef.Attributes & FieldAttributes.Static) == 0 && (fieldDef.Attributes & FieldAttributes.InitOnly) == 0 && (fieldDef.Attributes & FieldAttributes.NotSerialized) == 0) { DumpType(fieldDef.FieldType, sb, reader, fieldDef.Name, indent + 1); } } } }
public SpriteRenderData(ObjectReader reader) { var version = reader.version; texture = new PPtr <Texture2D>(reader); if (version[0] > 5 || (version[0] == 5 && version[1] >= 2)) //5.2 and up { alphaTexture = new PPtr <Texture2D>(reader); } if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up { var m_SubMeshesSize = reader.ReadInt32(); m_SubMeshes = new SubMesh[m_SubMeshesSize]; for (int i = 0; i < m_SubMeshesSize; i++) { m_SubMeshes[i] = new SubMesh(reader); } m_IndexBuffer = reader.ReadBytes(reader.ReadInt32()); reader.AlignStream(4); m_VertexData = new VertexData(reader); } else { var verticesSize = reader.ReadInt32(); vertices = new SpriteVertex[verticesSize]; for (int i = 0; i < verticesSize; i++) { vertices[i] = new SpriteVertex(reader); } indices = reader.ReadUInt16Array(reader.ReadInt32()); reader.AlignStream(4); } if (version[0] >= 2018) //2018 and up { m_Bindpose = reader.ReadMatrixArray(reader.ReadInt32()); if (version[0] == 2018 && version[1] < 2) //2018.2 down { var m_SourceSkinSize = reader.ReadInt32(); for (int i = 0; i < m_SourceSkinSize; i++) { m_SourceSkin[i] = new BoneWeights4(reader); } } } textureRect = reader.ReadRectangleF(); textureRectOffset = reader.ReadVector2(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up { atlasRectOffset = reader.ReadVector2(); } settingsRaw = new SpriteSettings(reader); if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { uvTransform = reader.ReadVector4(); } if (version[0] >= 2017) //2017 and up { downscaleMultiplier = reader.ReadSingle(); } }