private void ParseMetaFile() { GetImporterJson(); PostprocessorDataList importersPostprocessorData = new PostprocessorDataList(); if (!string.IsNullOrEmpty(m_ImporterJson)) { importersPostprocessorData = JsonUtility.FromJson <PostprocessorDataList>(m_ImporterJson); } m_ImporterPostprocessorData = importersPostprocessorData; }
/// <summary> /// Parses the userData for the assetPath to PostprocessorData /// </summary> /// <param name="assetPath"></param> /// <returns></returns> private static UserDataSerialization ParseForAssetPath(string assetPath) { AssetImporter importer = AssetImporter.GetAtPath(assetPath); Assert.IsNotNull(importer); string userData = importer.userData; int idfStartIndex = userData.IndexOf(searchString, StringComparison.Ordinal); int idfEndIndex = -1; PostprocessorDataList importersPostprocessorData = new PostprocessorDataList(); if (idfStartIndex != -1) { idfEndIndex = idfStartIndex + searchString.Length; int counter = 0; int startIndex = idfEndIndex; while (idfEndIndex < userData.Length) { if (userData[idfEndIndex] == '{') { counter++; } else if (userData[idfEndIndex] == '}') { counter--; } if (counter == -1) { break; } ++idfEndIndex; } Assert.AreEqual(-1, counter); string str = userData.Substring(startIndex, idfEndIndex - startIndex); importersPostprocessorData = JsonUtility.FromJson <PostprocessorDataList>(str); //idfEndIndex += 2; } UserDataSerialization returnData = new UserDataSerialization(); returnData.m_Importer = importer; returnData.m_ImporterPostprocessorData = importersPostprocessorData; returnData.m_UserDataStartIndex = idfStartIndex; returnData.m_UserDataEndIndex = idfEndIndex; return(returnData); }