public void OnAfterDeserialize() { if (primary_function_enum != null) { primary_function = (PrimaryFunction)Enum.Parse(typeof(PrimaryFunction), primary_function_enum); } if (hierarchy_rank_enum != null) { hierarchy_rank = (HierarchyRank)Enum.Parse(typeof(HierarchyRank), hierarchy_rank_enum); } if (item_function_enum != null) { item_function = (ItemFunction)Enum.Parse(typeof(ItemFunction), item_function_enum); } if (material_function_enum != null) { material_function = (MaterialFunction)Enum.Parse(typeof(MaterialFunction), material_function_enum); } if (morph_function_enum != null) { morph_function = (MorphFunction)Enum.Parse(typeof(MorphFunction), morph_function_enum); } if (animation_function_enum != null) { animation_function = (AnimationFunction)Enum.Parse(typeof(AnimationFunction), animation_function_enum); } if (artisttools_function_enum != null) { artisttools_function = (ArtistToolsFunction)Enum.Parse(typeof(ArtistToolsFunction), artisttools_function_enum); } }
//during the import process unity gives us these arrays per gameobject - they are our metatadata from fbx public void PopulateValuesFromImportArrays(string[] names, object[] values) { //sweet. got the good stuff for (int i = 0; i < names.Length; i++) { //our placeholder values - make sure you dont use a previous parsed bad value!!! string name = names [i]; string string_value; float float_value; switch (name) { case "hierarchy_rank": string_value = values [i].ToString(); this.rank = MCS.Utilities.EnumHelper.ParseEnum <HierarchyRank> (string_value); break; case "primary_function": string_value = values [i].ToString(); this.function = MCS.Utilities.EnumHelper.ParseEnum <PrimaryFunction>(string_value); break; case "collection_version": float_value = float.Parse(values [i].ToString()); this.collection_version = float_value; break; case "item_version": float_value = float.Parse(values [i].ToString()); this.item_version = float_value; break; case "mcs_version": float_value = float.Parse(values [i].ToString()); this.mcs_version = float_value; break; case "item_id": string_value = values [i].ToString(); this.item_id = string_value; break; case "collection_id": string_value = values [i].ToString(); this.collection_id = string_value; break; case "item_name": string_value = values [i].ToString(); this.item_name = string_value; break; case "collection_name": string_value = values [i].ToString(); this.collection_name = string_value; break; case "geometries": string_value = values [i].ToString(); //json bundle this.schematic = ItemSchematic.CreateFromJSON(string_value); break; case "compatibilities": string_value = values [i].ToString(); //json bundle Debug.Log("FOUND IT: " + string_value); this.compatibilities = ItemCompatibilities.CreateFromJSON(string_value); break; } } }