Esempio n. 1
0
        private void OnEnable()
        {
            if (!m_Prefs)
            {
                string path = EditorPrefs.GetString(kInkTodoFilePref, null);

                if (path != null)
                {
                    DefaultAsset inkFile = AssetDatabase.LoadAssetAtPath <DefaultAsset>(path);
                    m_Prefs = InkTodoPrefs.Load(inkFile);
                }
            }

            if (m_Prefs)
            {
                m_Prefs.Analyze();
            }
        }
        public static InkTodoPrefs Load(DefaultAsset inkFile)
        {
            string inkPath   = AssetDatabase.GetAssetPath(inkFile);
            string directory = Path.GetDirectoryName(inkPath);
            string prefsName = Path.GetFileNameWithoutExtension(inkPath) + ".asset";
            string prefsPath = Path.Combine(directory, prefsName);

            InkTodoPrefs prefs = AssetDatabase.LoadAssetAtPath <InkTodoPrefs>(prefsPath);

            if (!prefs)
            {
                prefs = CreateInstance <InkTodoPrefs>();
                AssetDatabase.CreateAsset(prefs, prefsPath);
                InkFileInfo inkInfo = new InkFileInfo(inkFile);
                prefs.m_InkFileAssets = new List <DefaultAsset> {
                    inkFile
                };

                foreach (string includePath in inkInfo.Includes)
                {
                    DefaultAsset includeAsset = AssetDatabase.LoadAssetAtPath <DefaultAsset>(includePath);
                    if (includeAsset)
                    {
                        prefs.m_InkFileAssets.Add(includeAsset);
                    }
                }

                prefs.m_Searches = new List <RegexTodoSearch> {
                    new RegexTodoSearch()
                };
            }

            prefs.Analyze();

            return(prefs);
        }