private void OnEnable() { PluginsFoldoutAnimator = new AnimBool(true); PluginsFoldoutAnimator.valueChanged.AddListener(Repaint); NewPluginFoldoutAnimator = new AnimBool(false); NewPluginFoldoutAnimator.valueChanged.AddListener(Repaint); NativePluginSettings.Load(); for (int i = 0; i < NativePluginSettings.plugins.Count; i++) { NativePluginSettings.plugins[i].sectionAnimator.valueChanged.RemoveAllListeners(); NativePluginSettings.plugins[i].sectionAnimator.valueChanged.AddListener(Repaint); foreach (var options in NativePluginSettings.plugins[i].buildOptions) { options.foldoutAnimator.valueChanged.RemoveAllListeners(); options.foldoutAnimator.valueChanged.AddListener(Repaint); } } if (newPlugin == null) { newPlugin = NativePlugin.GetDefault(this); } CMakeHelper.GetCMakeVersion((version) => { cmakeVersion = version; }); backgroundProcessManager = new BackgroundProcessManager(this); List <string> platformStrings = new List <string>(); List <int> platforms = new List <int>(); foreach (BuildPlatform platform in Enum.GetValues(typeof(BuildPlatform))) { if (GetBuilder(platform).IsAvailable) { platforms.Add((int)platform); platformStrings.Add(ObjectNames.NicifyVariableName(Enum.GetName(typeof(BuildPlatform), platform))); } } AvailablePlatformStrings = platformStrings.ToArray(); AvailablePlatformInts = platforms.ToArray(); }
void OnGuiSettings() { EditorGUILayout.Space(); EditorGUILayout.LabelField("CMake", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("CMake version", cmakeVersion); if (GUILayout.Button("Refresh", EditorStyles.miniButton, GUILayout.Width(80))) { CMakeHelper.GetCMakeVersion((version) => { cmakeVersion = version; }, true); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUI.changed = false; CMakeHelper.CMakeLocation = EditorGUILayout.TextField(new GUIContent("CMake location", "leave empty for default"), CMakeHelper.CMakeLocation); if (GUILayout.Button("Browse", EditorStyles.miniButton, GUILayout.Width(80))) { string file = EditorUtility.OpenFilePanel("Select CMake location", Path.GetDirectoryName(CMakeHelper.CMakeLocation), PluginBuilderBase.EditorPlatform == RuntimePlatform.WindowsEditor ? "exe" : ""); CMakeHelper.CMakeLocation = file; } if (GUILayout.Button("Download", EditorStyles.miniButton, GUILayout.Width(80))) { Application.OpenURL("https://cmake.org/download/"); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (GetBuilder(BuildPlatform.Android).IsAvailable) { EditorGUILayout.LabelField("Android", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); GUI.changed = false; string ndk = EditorGUILayout.TextField(new GUIContent("NDK", "NDK location. leave empty to use default location."), AndroidBuilder.NDKLocation); if (GUI.changed) { AndroidBuilder.NDKLocation = ndk; } if (GUILayout.Button("Browse", EditorStyles.miniButton, GUILayout.Width(80))) { AndroidBuilder.NDKLocation = EditorUtility.OpenFolderPanel("Select NDK location", Path.GetDirectoryName(AndroidBuilder.NDKLocation), ""); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } if (PluginBuilderBase.EditorPlatform == RuntimePlatform.WindowsEditor) { if (GetBuilder(BuildPlatform.WebGL).IsAvailable) { EditorGUILayout.LabelField("WebGL", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); GUI.changed = false; string mingw32make = EditorGUILayout.TextField(new GUIContent("MinGW 32 Make", "mingw32-make.exe"), WebGLBuilder.MinGW32MakeLocation); if (GUI.changed) { WebGLBuilder.MinGW32MakeLocation = mingw32make; } if (GUILayout.Button("Browse", EditorStyles.miniButton, GUILayout.Width(80))) { string file = EditorUtility.OpenFilePanel("Select MinGW 32 Make (mingw32-make.exe) location", WebGLBuilder.MinGW32MakeLocation, PluginBuilderBase.EditorPlatform == RuntimePlatform.WindowsEditor ? "exe" : ""); WebGLBuilder.MinGW32MakeLocation = file; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } if (GetBuilder(BuildPlatform.Windows).IsAvailable) { EditorGUILayout.LabelField("Windows", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); WindowsBuilder.VisualStudioVersion = EditorGUILayout.IntPopup("Visual Studio", WindowsBuilder.VisualStudioVersion, WindowsBuilder.InstalledVisualStudioNames, WindowsBuilder.InstalledVisualStudios); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } } EditorGUILayout.Space(); }