87 lines
2.9 KiB
C#
87 lines
2.9 KiB
C#
#if UNITY_EDITOR
|
|
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using FishNet.Configuring;
|
|
|
|
using UnitySettingsProviderAttribute = UnityEditor.SettingsProviderAttribute;
|
|
using UnitySettingsProvider = UnityEditor.SettingsProvider;
|
|
using System.Collections.Generic;
|
|
|
|
namespace FishNet.Configuring.Editing
|
|
{
|
|
internal static class SettingsProvider
|
|
{
|
|
private static Vector2 _scrollView;
|
|
|
|
[UnitySettingsProvider]
|
|
private static UnitySettingsProvider Create()
|
|
{
|
|
return new UnitySettingsProvider("Project/Fish-Networking/Configuration", SettingsScope.Project)
|
|
{
|
|
label = "Configuration",
|
|
|
|
guiHandler = OnGUI,
|
|
|
|
keywords = new string[]
|
|
{
|
|
"Fish",
|
|
"Networking",
|
|
"Configuration",
|
|
},
|
|
};
|
|
}
|
|
|
|
private static void OnGUI(string searchContext)
|
|
{
|
|
ConfigurationData configuration = Configuration.LoadConfigurationData();
|
|
|
|
if (configuration == null)
|
|
{
|
|
EditorGUILayout.HelpBox("Unable to load configuration data.", MessageType.Error);
|
|
|
|
return;
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
GUIStyle scrollViewStyle = new GUIStyle()
|
|
{
|
|
padding = new RectOffset(10, 10, 10, 10),
|
|
};
|
|
|
|
_scrollView = GUILayout.BeginScrollView(_scrollView, scrollViewStyle);
|
|
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
|
GUIStyle toggleStyle = new GUIStyle(EditorStyles.toggle)
|
|
{
|
|
richText = true,
|
|
};
|
|
|
|
configuration.CodeStripping.StripReleaseBuilds = GUILayout.Toggle(configuration.CodeStripping.StripReleaseBuilds, $"{ObjectNames.NicifyVariableName(nameof(configuration.CodeStripping.StripReleaseBuilds))} <color=yellow>(Pro Only)</color>", toggleStyle);
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
|
|
if (configuration.CodeStripping.StripReleaseBuilds)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
//Stripping Method.
|
|
List<string> enumStrings = new List<string>();
|
|
foreach (string item in System.Enum.GetNames(typeof(StrippingTypes)))
|
|
enumStrings.Add(item);
|
|
configuration.CodeStripping.StrippingType = EditorGUILayout.Popup($"{ObjectNames.NicifyVariableName(nameof(configuration.CodeStripping.StrippingType))}", (int)configuration.CodeStripping.StrippingType, enumStrings.ToArray());
|
|
|
|
EditorGUILayout.HelpBox("Development builds will not have code stripped. Additionally, if you plan to run as host disable code stripping.", MessageType.Warning);
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
|
|
GUILayout.EndScrollView();
|
|
|
|
if (EditorGUI.EndChangeCheck()) Configuration.Configurations.Write(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|