protected EditorExtension(ObjectReader reader) : base(reader) { if (platform == BuildTarget.NoTarget) { var m_PrefabParentObject = reader.ReadPPtr(); var m_PrefabInternal = reader.ReadPPtr(); } }
public Animation(ObjectReader reader) : base(reader) { var m_Animation = reader.ReadPPtr(); int numAnimations = reader.ReadInt32(); m_Animations = new List <PPtr>(numAnimations); for (int i = 0; i < numAnimations; i++) { m_Animations.Add(reader.ReadPPtr()); } }
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 AnimatorOverrideController(ObjectReader reader) : base(reader) { m_Controller = reader.ReadPPtr(); int numOverrides = reader.ReadInt32(); m_Clips = new PPtr[numOverrides][]; for (int i = 0; i < numOverrides; i++) { m_Clips[i] = new PPtr[2]; m_Clips[i][0] = reader.ReadPPtr(); m_Clips[i][1] = reader.ReadPPtr(); } }
public Animator(ObjectReader reader) : base(reader) { m_Avatar = reader.ReadPPtr(); m_Controller = reader.ReadPPtr(); var m_CullingMode = reader.ReadInt32(); if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { var m_UpdateMode = reader.ReadInt32(); } var m_ApplyRootMotion = reader.ReadBoolean(); if (version[0] == 4 && version[1] >= 5) //4.5 and up - 5.0 down { reader.AlignStream(4); } if (version[0] >= 5) //5.0 and up { var m_LinearVelocityBlending = reader.ReadBoolean(); reader.AlignStream(4); } if (version[0] < 4 || (version[0] == 4 && version[1] < 5)) //4.5 down { var m_AnimatePhysics = reader.ReadBoolean(); } if (version[0] > 4 || (version[0] == 4 && version[1] >= 3)) //4.3 and up { m_HasTransformHierarchy = reader.ReadBoolean(); } if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { var m_AllowConstantClipSamplingOptimization = reader.ReadBoolean(); } if (version[0] >= 5 && version[0] < 2018) //5.0 and up - 2018 down { reader.AlignStream(4); } if (version[0] >= 2018) //2018 and up { var m_KeepAnimatorControllerStateOnDisable = reader.ReadBoolean(); reader.AlignStream(4); } }
public SpriteAtlas(ObjectReader reader) : base(reader) { var m_PackedSpritesSize = reader.ReadInt32(); for (int i = 0; i < m_PackedSpritesSize; i++) { reader.ReadPPtr(); //PPtr<Sprite> data } var m_PackedSpriteNamesToIndexSize = reader.ReadInt32(); for (int i = 0; i < m_PackedSpriteNamesToIndexSize; i++) { reader.ReadAlignedString(); } var m_RenderDataMapSize = reader.ReadInt32(); m_RenderDataMap = new Dictionary <Tuple <Guid, long>, SpriteAtlasData>(m_RenderDataMapSize); for (int i = 0; i < m_RenderDataMapSize; i++) { var first = new Guid(reader.ReadBytes(16)); var second = reader.ReadInt64(); var value = new SpriteAtlasData(reader); m_RenderDataMap.Add(new Tuple <Guid, long>(first, second), value); } //string m_Tag //bool m_IsVariant }
public SpriteAtlasData(ObjectReader reader) { var version = reader.version; texture = reader.ReadPPtr(); alphaTexture = reader.ReadPPtr(); 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 FloatCurve(ObjectReader reader) { curve = new AnimationCurve <float>(reader, reader.ReadSingle); attribute = reader.ReadAlignedString(); path = reader.ReadAlignedString(); classID = reader.ReadInt32(); script = reader.ReadPPtr(); }
public MovieTexture(ObjectReader reader) : base(reader) { var m_Loop = reader.ReadBoolean(); reader.AlignStream(4); //PPtr<AudioClip> reader.ReadPPtr(); m_MovieData = reader.ReadBytes(reader.ReadInt32()); }
public AssetBundle(ObjectReader reader) : base(reader) { var size = reader.ReadInt32(); for (int i = 0; i < size; i++) { reader.ReadPPtr(); } size = reader.ReadInt32(); for (int i = 0; i < size; i++) { var temp = new ContainerData(); temp.first = reader.ReadAlignedString(); temp.second = new AssetInfo(); temp.second.preloadIndex = reader.ReadInt32(); temp.second.preloadSize = reader.ReadInt32(); temp.second.asset = reader.ReadPPtr(); m_Container.Add(temp); } }
public GameObject(ObjectReader reader) : base(reader) { int m_Component_size = reader.ReadInt32(); m_Components = new List <PPtr>(m_Component_size); for (int j = 0; j < m_Component_size; j++) { if ((version[0] == 5 && version[1] >= 5) || version[0] > 5)//5.5.0 and up { m_Components.Add(reader.ReadPPtr()); } else { int first = reader.ReadInt32(); m_Components.Add(reader.ReadPPtr()); } } var m_Layer = reader.ReadInt32(); m_Name = reader.ReadAlignedString(); }
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 = reader.ReadPPtr(); } m_Mesh = reader.ReadPPtr(); m_Bones = new PPtr[reader.ReadInt32()]; for (int b = 0; b < m_Bones.Length; b++) { m_Bones[b] = reader.ReadPPtr(); } 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 PPtrCurve(ObjectReader reader) { int numCurves = reader.ReadInt32(); curve = new List <PPtrKeyframe>(numCurves); for (int i = 0; i < numCurves; i++) { curve.Add(new PPtrKeyframe(reader)); } attribute = reader.ReadAlignedString(); path = reader.ReadAlignedString(); classID = reader.ReadInt32(); script = reader.ReadPPtr(); }
public AnimationClipBindingConstant(ObjectReader reader) { int numBindings = reader.ReadInt32(); genericBindings = new List <GenericBinding>(numBindings); for (int i = 0; i < numBindings; i++) { genericBindings.Add(new GenericBinding(reader)); } int numMappings = reader.ReadInt32(); pptrCurveMapping = new List <PPtr>(numMappings); for (int i = 0; i < numMappings; i++) { pptrCurveMapping.Add(reader.ReadPPtr()); } }
public GenericBinding(ObjectReader reader) { var version = reader.version; path = reader.ReadUInt32(); attribute = reader.ReadUInt32(); script = reader.ReadPPtr(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up { typeID = reader.ReadInt32(); } else { typeID = reader.ReadUInt16(); } customType = reader.ReadByte(); isPPtrCurve = reader.ReadByte(); reader.AlignStream(4); }
public AnimatorController(ObjectReader reader) : base(reader) { var m_ControllerSize = reader.ReadUInt32(); var m_Controller = new ControllerConstant(reader); int tosSize = reader.ReadInt32(); var m_TOS = new List <KeyValuePair <uint, string> >(tosSize); for (int i = 0; i < tosSize; i++) { m_TOS.Add(new KeyValuePair <uint, string>(reader.ReadUInt32(), reader.ReadAlignedString())); } int numClips = reader.ReadInt32(); m_AnimationClips = new PPtr[numClips]; for (int i = 0; i < numClips; i++) { m_AnimationClips[i] = reader.ReadPPtr(); } }
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 PointF[][] m_PhysicsShape; //Vector2[][] public Sprite(ObjectReader reader) : base(reader) { //Rectf m_Rect m_Rect = reader.ReadRectangleF(); //Vector2f m_Offset reader.Position += 8; if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { //Vector4f m_Border reader.Position += 16; } 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 { //Vector2f m_Pivot m_Pivot = reader.ReadVector2(); } var m_Extrude = reader.ReadUInt32(); if (version[0] > 5 || (version[0] == 5 && version[1] >= 3)) //5.3 and up { var m_IsPolygon = reader.ReadBoolean(); reader.AlignStream(4); } if (version[0] >= 2017) //2017 and up { //pair m_RenderDataKey var first = new Guid(reader.ReadBytes(16)); var second = reader.ReadInt64(); m_RenderDataKey = new Tuple <Guid, long>(first, second); //vector m_AtlasTags var size = reader.ReadInt32(); for (int i = 0; i < size; i++) { var data = reader.ReadAlignedString(); } //PPtr<SpriteAtlas> m_SpriteAtlas m_SpriteAtlas = reader.ReadPPtr(); } //SpriteRenderData m_RD // PPtr<Texture2D> texture texture = reader.ReadPPtr(); // PPtr<Texture2D> alphaTexture if (version[0] > 5 || (version[0] == 5 && version[1] >= 2)) //5.2 and up { var alphaTexture = reader.ReadPPtr(); } if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up { // vector m_SubMeshes var size = reader.ReadInt32(); // SubMesh data if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 3)) //2017.3 and up { reader.Position += 48 * size; } else { reader.Position += 44 * size; } // vector m_IndexBuffer size = reader.ReadInt32(); reader.Position += size; //UInt8 data reader.AlignStream(4); // VertexData m_VertexData if (version[0] < 2018)//2018 down { var m_CurrentChannels = reader.ReadInt32(); } var m_VertexCount = reader.ReadUInt32(); // vector m_Channels size = reader.ReadInt32(); reader.Position += size * 4; //ChannelInfo data // TypelessData m_DataSize size = reader.ReadInt32(); reader.Position += size; //UInt8 data reader.AlignStream(4); if (version[0] >= 2018)//2018 and up { // vector m_Bindpose // Matrix4x4f data size = reader.ReadInt32(); reader.Position += size * 64; if (version[0] == 2018 && version[1] < 2) //2018.2 down { // vector m_SourceSkin // BoneWeights4 data size = reader.ReadInt32(); reader.Position += size * 32; } } } else { // vector vertices var size = reader.ReadInt32(); for (int i = 0; i < size; i++) { //SpriteVertex data reader.Position += 12; //Vector3f pos if (version[0] < 4 || (version[0] == 4 && version[1] <= 3)) //4.3 and down { reader.Position += 8; //Vector2f uv } } // vector indices size = reader.ReadInt32(); reader.Position += 2 * size; //UInt16 data reader.AlignStream(4); } // Rectf textureRect textureRect = reader.ReadRectangleF(); // Vector2f textureRectOffset reader.Position += 8; // Vector2f atlasRectOffset - 5.6 and up if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up { reader.Position += 8; } // unsigned int settingsRaw settingsRaw = new SpriteSettings(reader); // Vector4f uvTransform - 4.5 and up if (version[0] > 4 || (version[0] == 4 && version[1] >= 5)) //4.5 and up { reader.Position += 16; } if (version[0] >= 2017) //2017 and up { // float downscaleMultiplier - 2017 and up reader.Position += 4; //vector m_PhysicsShape - 2017 and up var m_PhysicsShape_size = reader.ReadInt32(); m_PhysicsShape = new PointF[m_PhysicsShape_size][]; for (int i = 0; i < m_PhysicsShape_size; i++) { var data_size = reader.ReadInt32(); //Vector2f m_PhysicsShape[i] = new PointF[data_size]; for (int j = 0; j < data_size; j++) { m_PhysicsShape[i][j] = new PointF(reader.ReadSingle(), reader.ReadSingle()); } } } //vector m_Bones 2018 and up }
public Font(ObjectReader reader) : base(reader) { if ((version[0] == 5 && version[1] >= 5) || version[0] > 5)//5.5 and up { var m_LineSpacing = reader.ReadSingle(); var m_DefaultMaterial = reader.ReadPPtr(); var m_FontSize = reader.ReadSingle(); var m_Texture = reader.ReadPPtr(); int m_AsciiStartOffset = reader.ReadInt32(); var m_Tracking = reader.ReadSingle(); var m_CharacterSpacing = reader.ReadInt32(); var m_CharacterPadding = reader.ReadInt32(); var m_ConvertCase = reader.ReadInt32(); int m_CharacterRects_size = reader.ReadInt32(); for (int i = 0; i < m_CharacterRects_size; i++) { reader.Position += 44;//CharacterInfo data 41 } int m_KerningValues_size = reader.ReadInt32(); for (int i = 0; i < m_KerningValues_size; i++) { reader.Position += 8; } var m_PixelScale = reader.ReadSingle(); int m_FontData_size = reader.ReadInt32(); if (m_FontData_size > 0) { m_FontData = reader.ReadBytes(m_FontData_size); } } else { int m_AsciiStartOffset = reader.ReadInt32(); if (version[0] <= 3) { int m_FontCountX = reader.ReadInt32(); int m_FontCountY = reader.ReadInt32(); } float m_Kerning = reader.ReadSingle(); float m_LineSpacing = reader.ReadSingle(); if (version[0] <= 3) { int m_PerCharacterKerning_size = reader.ReadInt32(); for (int i = 0; i < m_PerCharacterKerning_size; i++) { int first = reader.ReadInt32(); float second = reader.ReadSingle(); } } else { int m_CharacterSpacing = reader.ReadInt32(); int m_CharacterPadding = reader.ReadInt32(); } int m_ConvertCase = reader.ReadInt32(); PPtr m_DefaultMaterial = reader.ReadPPtr(); int m_CharacterRects_size = reader.ReadInt32(); for (int i = 0; i < m_CharacterRects_size; i++) { int index = reader.ReadInt32(); //Rectf uv float uvx = reader.ReadSingle(); float uvy = reader.ReadSingle(); float uvwidth = reader.ReadSingle(); float uvheight = reader.ReadSingle(); //Rectf vert float vertx = reader.ReadSingle(); float verty = reader.ReadSingle(); float vertwidth = reader.ReadSingle(); float vertheight = reader.ReadSingle(); float width = reader.ReadSingle(); if (version[0] >= 4) { var flipped = reader.ReadBoolean(); reader.AlignStream(4); } } PPtr m_Texture = reader.ReadPPtr(); int m_KerningValues_size = reader.ReadInt32(); for (int i = 0; i < m_KerningValues_size; i++) { int pairfirst = reader.ReadInt16(); int pairsecond = reader.ReadInt16(); float second = reader.ReadSingle(); } if (version[0] <= 3) { var m_GridFont = reader.ReadBoolean(); reader.AlignStream(4); } else { float m_PixelScale = reader.ReadSingle(); } int m_FontData_size = reader.ReadInt32(); if (m_FontData_size > 0) { m_FontData = reader.ReadBytes(m_FontData_size); } } }
protected Component(ObjectReader reader) : base(reader) { m_GameObject = reader.ReadPPtr(); }
public PPtrKeyframe(ObjectReader reader) { time = reader.ReadSingle(); value = reader.ReadPPtr(); }
public MeshFilter(ObjectReader reader) : base(reader) { m_Mesh = reader.ReadPPtr(); }
protected Renderer(ObjectReader reader) : base(reader) { if (version[0] < 5) { var m_Enabled = reader.ReadBoolean(); var m_CastShadows = reader.ReadByte(); var m_ReceiveShadows = reader.ReadBoolean(); var m_LightmapIndex = reader.ReadByte(); } else { var m_Enabled = reader.ReadBoolean(); reader.AlignStream(4); var m_CastShadows = reader.ReadByte(); var m_ReceiveShadows = reader.ReadBoolean(); reader.AlignStream(4); if (version[0] >= 2018)//2018 and up { var m_RenderingLayerMask = reader.ReadUInt32(); } var m_LightmapIndex = reader.ReadUInt16(); var m_LightmapIndexDynamic = reader.ReadUInt16(); } if (version[0] >= 3) { reader.Position += 16;//Vector4f m_LightmapTilingOffset } if (version[0] >= 5) { reader.Position += 16;//Vector4f m_LightmapTilingOffsetDynamic } m_Materials = new PPtr[reader.ReadInt32()]; for (int m = 0; m < m_Materials.Length; m++) { m_Materials[m] = reader.ReadPPtr(); } if (version[0] < 3) { reader.Position += 16;//m_LightmapTilingOffset vector4d } else { if ((version[0] == 5 && version[1] >= 5) || version[0] > 5)//5.5.0 and up { m_StaticBatchInfo = new StaticBatchInfo { firstSubMesh = reader.ReadUInt16(), subMeshCount = reader.ReadUInt16() }; } else { int numSubsetIndices = reader.ReadInt32(); m_SubsetIndices = reader.ReadUInt32Array(numSubsetIndices); } var m_StaticBatchRoot = reader.ReadPPtr(); if ((version[0] == 5 && version[1] >= 4) || version[0] > 5)//5.4.0 and up { var m_ProbeAnchor = reader.ReadPPtr(); var m_LightProbeVolumeOverride = reader.ReadPPtr(); } else if (version[0] >= 4 || (version[0] == 3 && version[1] >= 5))//3.5 - 5.3 { var m_UseLightProbes = reader.ReadBoolean(); reader.AlignStream(4); if (version[0] == 5)//5.0 and up { int m_ReflectionProbeUsage = reader.ReadInt32(); } var m_LightProbeAnchor = reader.ReadPPtr(); } if (version[0] >= 5 || (version[0] == 4 && version[1] >= 3)) //4.3 and up { if (version[0] == 4 && version[1] == 3) //4.3 { int m_SortingLayer = reader.ReadInt16(); } else { int m_SortingLayerID = reader.ReadInt32(); //SInt16 m_SortingOrder 5.6 and up } int m_SortingOrder = reader.ReadInt16(); reader.AlignStream(4); } } }
public MonoBehaviour(ObjectReader reader) : base(reader) { m_Script = reader.ReadPPtr(); m_Name = reader.ReadAlignedString(); }
public Material(ObjectReader reader) : base(reader) { m_Shader = reader.ReadPPtr(); if (version[0] == 4 && (version[1] >= 2 || (version[1] == 1 && buildType[0] != "a"))) { m_ShaderKeywords = new string[reader.ReadInt32()]; for (int i = 0; i < m_ShaderKeywords.Length; i++) { m_ShaderKeywords[i] = reader.ReadAlignedString(); } } else if (version[0] >= 5)//5.0 and up { m_ShaderKeywords = new[] { reader.ReadAlignedString() }; uint m_LightmapFlags = reader.ReadUInt32(); if (version[0] == 5 && version[1] >= 6 || version[0] > 5)//5.6.0 and up { var m_EnableInstancingVariants = reader.ReadBoolean(); //var m_DoubleSidedGI = a_Stream.ReadBoolean();//2017.x reader.AlignStream(4); } } if (version[0] > 4 || version[0] == 4 && version[1] >= 3) { m_CustomRenderQueue = reader.ReadInt32(); } if (version[0] == 5 && version[1] >= 1 || version[0] > 5)//5.1 and up { string[][] stringTagMap = new string[reader.ReadInt32()][]; for (int i = 0; i < stringTagMap.Length; i++) { stringTagMap[i] = new[] { reader.ReadAlignedString(), reader.ReadAlignedString() }; } } //disabledShaderPasses if ((version[0] == 5 && version[1] >= 6) || version[0] > 5)//5.6.0 and up { var size = reader.ReadInt32(); for (int i = 0; i < size; i++) { reader.ReadAlignedString(); } } //m_SavedProperties m_TexEnvs = new TexEnv[reader.ReadInt32()]; for (int i = 0; i < m_TexEnvs.Length; i++) { TexEnv m_TexEnv = new TexEnv() { name = reader.ReadAlignedString(), m_Texture = reader.ReadPPtr(), m_Scale = new[] { reader.ReadSingle(), reader.ReadSingle() }, m_Offset = new[] { reader.ReadSingle(), reader.ReadSingle() } }; m_TexEnvs[i] = m_TexEnv; } m_Floats = new strFloatPair[reader.ReadInt32()]; for (int i = 0; i < m_Floats.Length; i++) { strFloatPair m_Float = new strFloatPair() { first = reader.ReadAlignedString(), second = reader.ReadSingle() }; m_Floats[i] = m_Float; } m_Colors = new strColorPair[reader.ReadInt32()]; for (int i = 0; i < m_Colors.Length; i++) { strColorPair m_Color = new strColorPair() { first = reader.ReadAlignedString(), second = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() } }; m_Colors[i] = m_Color; } }