private void OnEnable() { pluginPathSourcesList = EditorHelper.CreateReorderableList("pluginPath.sources", "源码路径", serializedObject, true); pluginPathExcludesList = EditorHelper.CreateReorderableList("pluginPath.excludes", "忽略路径", serializedObject, true); pluginPathLibsList = EditorHelper.CreateReorderableList("pluginPath.libs", "依赖路径", serializedObject, true); pluginMacros = EditorHelper.CreateReorderableList("defineMacros", "宏", serializedObject); pluginPathPluginRoot = serializedObject.FindProperty("pluginPath.pluginRoot"); }
private void OnEnable() { if (ConfigManager.configEntry == null) { ConfigManager.Init(); } projectSourcesList = CreateProjectConfigReorderableList("project.sources", "代码源文件路径"); projectExcludesList = CreateProjectConfigReorderableList("project.excludes", "忽略目录路径"); projectLibsList = CreateProjectConfigReorderableList("project.libs", "依赖库路径"); defineMacrosList = EditorHelper.CreateReorderableList("defineMacros", "宏", serializedObject); }
private void OnEnable() { if (ConfigManager.configEntry == null) { ConfigManager.Init(); } unityPlugins = EditorHelper.CreateReorderableList("unityPlugins", "工程插件列表", serializedObject); // unityPlugins = new ReorderableList( // serializedObject, // serializedObject.FindProperty("unityPlugins"), // false, true, true, true // ); // unityPlugins.drawElementCallback += (Rect rect, int index, bool isActive, bool isFocused) => // { // var element = unityPlugins.serializedProperty.GetArrayElementAtIndex(index); // rect.y += 4; // var width = EditorGUIUtility.currentViewWidth - 200; // var pluginDrawRect = new Rect(rect.x, rect.y, width, EditorGUIUtility.singleLineHeight); // SerializedProperty plugin = element; // if (plugin.objectReferenceValue != null) // { // plugin.objectReferenceValue = null; // } // EditorGUI.PropertyField( // pluginDrawRect, // plugin, // GUIContent.none // ); // // EditorGUI.PropertyField( // // enableDrawRect, // // element.FindPropertyRelative("enable"), // // new GUIContent("Enable") // // ); // }; unityPlugins.onAddCallback += (ReorderableList list) => { // add existed plugins var pluginConfig = target as UnityPluginConfig; if (pluginConfig.unityPlugins != null && pluginConfig.unityPlugins.Count == 0) { var configs = DirectoryBuilder.RegisterDirectory("config", new DirectoryStructure("Configs")); var _path = configs["ScriptableObject"].GetFilePath("bridge/plugins").PathToAssets(); // Debug.Log(_path); var pluginsGUID = AssetDatabase.FindAssets("t:UnityPlugin", new[] { _path }); Debug.Log("No plugins in List, add " + pluginsGUID.Length); if (pluginsGUID != null) { foreach (string plugin in pluginsGUID) { var soPath = AssetDatabase.GUIDToAssetPath(plugin); var so = AssetDatabase.LoadAssetAtPath <UnityPlugin>(soPath); pluginConfig.unityPlugins.Add(so); } } } // Debug.Log("!!!"); listView = (PluginListView)EditorWindow.GetWindow(typeof(PluginListView), true, "快速选择插件文件夹", true); listView.IterateAllDirectories(); listView.Show(true); listView.onAddCallback = (UnityPlugin plugin) => { Debug.Log("Add Plugin : " + plugin.pluginName); pluginConfig.unityPlugins.Add(plugin); EditorUtility.SetDirty(pluginConfig); AssetDatabase.SaveAssets(); // TODO: Repaint }; // Debug.Log("setdirty"); EditorUtility.SetDirty(pluginConfig); AssetDatabase.SaveAssets(); }; }