Singularity/Library/PackageCache/com.unity.2d.animation@7.0.10/Editor/SkinningModule/UserSettings.cs
2024-05-06 11:45:45 -07:00

168 lines
6.9 KiB
C#

using System;
using UnityEngine;
namespace UnityEditor.U2D.Animation
{
internal class SkinningModuleSettings
{
public const string kCompactToolbarKey = UserSettings.kSettingsUniqueKey + "AnimationEditorSetting.compactToolbar";
public static readonly GUIContent kCompactToolbarLabel = EditorGUIUtility.TrTextContent("Hide Tool Text");
public static bool compactToolBar
{
get { return EditorPrefs.GetBool(kCompactToolbarKey, false); }
set { EditorPrefs.SetBool(kCompactToolbarKey, value); }
}
public void OnGUI()
{
EditorGUI.BeginChangeCheck();
var c = EditorGUILayout.Toggle(kCompactToolbarLabel, compactToolBar);
if (EditorGUI.EndChangeCheck())
compactToolBar = c;
}
}
internal class VisibilityToolSettings
{
public const string kBoneOpacitykey = UserSettings.kSettingsUniqueKey + "VisibilityToolSettings.boneOpacity";
public const string kMeshOpacityKey = UserSettings.kSettingsUniqueKey + "VisibilityToolSettings.meshOpacity";
public static float boneOpacity
{
get { return EditorPrefs.GetFloat(kBoneOpacitykey, 1.0f); }
set { EditorPrefs.SetFloat(kBoneOpacitykey, value); }
}
public static float meshOpacity
{
get { return EditorPrefs.GetFloat(kMeshOpacityKey, 0.5f); }
set { EditorPrefs.SetFloat(kMeshOpacityKey, value); }
}
}
internal class GenerateGeomertySettings
{
public const int kDefaultOutlineDetail = 10;
public const int kDefaultAlphaTolerance = 10;
public const int kDefaultSubdivide = 0;
public const string kOutlineDetailKey = UserSettings.kSettingsUniqueKey + "GenerateGeomertySetting.outlineDetail";
public const string kAlphaToleranceKey = UserSettings.kSettingsUniqueKey + "GenerateGeomertySetting.alphaTolerance";
public const string kSubdivideKey = UserSettings.kSettingsUniqueKey + "GenerateGeomertySetting.subdivide";
public const string kGenerateWeightsKey = UserSettings.kSettingsUniqueKey + "GenerateGeomertySetting.generateWeights";
public static int outlineDetail
{
get { return EditorPrefs.GetInt(kOutlineDetailKey, kDefaultOutlineDetail); }
set { EditorPrefs.SetInt(kOutlineDetailKey, value); }
}
public static int alphaTolerance
{
get { return EditorPrefs.GetInt(kAlphaToleranceKey, kDefaultAlphaTolerance); }
set { EditorPrefs.SetInt(kAlphaToleranceKey, value); }
}
public static int subdivide
{
get { return EditorPrefs.GetInt(kSubdivideKey, kDefaultSubdivide); }
set { EditorPrefs.SetInt(kSubdivideKey, value); }
}
public static bool generateWeights
{
get { return EditorPrefs.GetBool(kGenerateWeightsKey, true); }
set { EditorPrefs.SetBool(kGenerateWeightsKey, value); }
}
}
internal class SelectionOutlineSettings
{
public const string kSelectedOutlineRedKey = UserSettings.kSettingsUniqueKey + "OutlineColorRed";
public const string kSelectedOutlineGreenKey = UserSettings.kSettingsUniqueKey + "OutlineColorGreen";
public const string kSelectedOutlineBlueKey = UserSettings.kSettingsUniqueKey + "OutlineColorBlue";
public const string kSelectedOutlineAlphaKey = UserSettings.kSettingsUniqueKey + "OutlineColorAlpha";
public const string kSelectedSpriteOutlineSize = UserSettings.kSettingsUniqueKey + "OutlineSize";
public const string kSelectedBoneOutlineSize = UserSettings.kSettingsUniqueKey + "BoneOutlineSize";
public static readonly GUIContent kSelectedOutlineColorLabel = new GUIContent(TextContent.selectedOutlineColor);
public static readonly GUIContent kSelectedOutlineSizeLabel = new GUIContent(TextContent.spriteOutlineSize);
public static readonly GUIContent kSelectedBoneOutlineSizeLabel = new GUIContent(TextContent.boneOutlineSize);
public static Color outlineColor
{
get
{
return new Color()
{
r = EditorPrefs.GetFloat(kSelectedOutlineRedKey, 1),
g = EditorPrefs.GetFloat(kSelectedOutlineGreenKey, 102.0f / 255.0f),
b = EditorPrefs.GetFloat(kSelectedOutlineBlueKey, 0),
a = EditorPrefs.GetFloat(kSelectedOutlineAlphaKey, 1)
};
}
set
{
EditorPrefs.SetFloat(kSelectedOutlineRedKey, value.r);
EditorPrefs.SetFloat(kSelectedOutlineGreenKey, value.g);
EditorPrefs.SetFloat(kSelectedOutlineBlueKey, value.b);
EditorPrefs.SetFloat(kSelectedOutlineAlphaKey, value.a);
}
}
public static int selectedSpriteOutlineSize
{
get { return EditorPrefs.GetInt(kSelectedSpriteOutlineSize, 1); }
set { EditorPrefs.SetInt(kSelectedSpriteOutlineSize, value); }
}
public static float selectedBoneOutlineSize
{
get { return EditorPrefs.GetFloat(kSelectedBoneOutlineSize, 1); }
set { EditorPrefs.SetFloat(kSelectedBoneOutlineSize, value); }
}
public void OnGUI()
{
EditorGUI.BeginChangeCheck();
var c = EditorGUILayout.ColorField(kSelectedOutlineColorLabel, outlineColor);
if (EditorGUI.EndChangeCheck())
outlineColor = c;
EditorGUI.BeginChangeCheck();
var s = EditorGUILayout.IntSlider(kSelectedOutlineSizeLabel, selectedSpriteOutlineSize, 0, 10);
if (EditorGUI.EndChangeCheck())
selectedSpriteOutlineSize = s;
EditorGUI.BeginChangeCheck();
var o = EditorGUILayout.Slider(kSelectedBoneOutlineSizeLabel, selectedBoneOutlineSize, 0, 3);
if (EditorGUI.EndChangeCheck())
selectedBoneOutlineSize = o;
}
}
internal class UserSettings : SettingsProvider
{
public const string kSettingsUniqueKey = "UnityEditor.U2D.Animation/";
private static SelectionOutlineSettings s_SelectionOutlineSettings = new SelectionOutlineSettings();
private static SkinningModuleSettings s_SkinningModuleSettings = new SkinningModuleSettings();
public UserSettings() : base("Preferences/2D/Animation", SettingsScope.User)
{
guiHandler = OnGUI;
}
[SettingsProvider]
private static SettingsProvider CreateSettingsProvider()
{
return new UserSettings()
{
guiHandler = SettingsGUI
};
}
private static void SettingsGUI(string searchContext)
{
s_SkinningModuleSettings.OnGUI();
s_SelectionOutlineSettings.OnGUI();
}
}
}