public static void ReadFile(GameObject obj, ObjectDeserializer.ObjectReader reader) { ObjectDeserializer.PropertyData propertyData = reader.ReadTypeAndName(); if (propertyData.type == "GameObject" && propertyData.name == obj.name) { ObjectDeserializer.ReadObject(obj, 1, reader); } }
private static void ReadObject(GameObject obj, int depth, ObjectDeserializer.ObjectReader reader) { while (reader.GetIndentation() == depth) { ObjectDeserializer.PropertyData propertyData = reader.ReadTypeAndName(); if (propertyData.type == "Component") { string text; if (propertyData.name.Contains(".")) { text = propertyData.name.Substring(propertyData.name.LastIndexOf(".") + 1); } else { text = propertyData.name; } Component component = obj.GetComponent(text); if (component == null) { Type componentTypeByName = ComponentHelper.GetComponentTypeByName(text); component = (componentTypeByName == null) ? null : obj.AddComponent(componentTypeByName); } if (component != null) { if (component is ParticleSystem) { ObjectDeserializer.ReadParticleSystem((ParticleSystem)component, depth + 1, reader); } else { ObjectDeserializer.ReadComponent(component, depth + 1, reader); } } } else if (propertyData.type == "GameObject") { GameObject gameObject = obj.transform.Find(propertyData.name).gameObject; if (gameObject) { ObjectDeserializer.ReadObject(gameObject, depth + 1, reader); } } } }