Beispiel #1
0
        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);
        }