public JsonPrefabData(GameObject prefabObject, ResourceMapper resMap) { id = resMap.getRootPrefabId(prefabObject, true); path = AssetDatabase.GetAssetPath(prefabObject); guid = AssetDatabase.AssetPathToGUID(path); //name = System.IO.Path.GetFileName(path); name = prefabObject.name; //looks like name of prefab mirrors that of a file, sans extension //prefabType = PrefabUtility.GetPrefabType(prefabObject).ToString(); prefabAssetType = PrefabUtility.GetPrefabAssetType(prefabObject).ToString(); prefabInstanceStatus = PrefabUtility.GetPrefabInstanceStatus(prefabObject).ToString(); var mapper = resMap.getPrefabObjectMapper(prefabObject); for (int i = 0; i < mapper.numObjects; i++) { ///Well, this is certainly not the best way to go about it... var src = mapper.getObjectByIndex(i); var dst = new JsonGameObject(src, mapper, resMap); objects.Add(dst); } }