Rasagar/Library/PackageCache/com.unity.cinemachine/Editor/Windows/CinemachineColliderPrefs.cs
2024-08-26 23:07:20 +03:00

86 lines
2.6 KiB
C#

using UnityEngine;
using UnityEditor;
using Cinemachine.Editor;
namespace Cinemachine
{
[InitializeOnLoad]
internal static class CinemachineColliderPrefs
{
private static bool SettingsFoldedOut
{
get { return EditorPrefs.GetBool(kColliderSettingsFoldoutKey, false); }
set
{
if (value != SettingsFoldedOut)
{
EditorPrefs.SetBool(kColliderSettingsFoldoutKey, value);
}
}
}
public static Color FeelerHitColor
{
get
{
return CinemachineSettings.UnpackColour(EditorPrefs.GetString(kFeelerHitColourKey, CinemachineSettings.PackColor(Color.yellow)));
}
set
{
if (value != FeelerHitColor)
{
EditorPrefs.SetString(kFeelerHitColourKey, CinemachineSettings.PackColor(value));
}
}
}
public static Color FeelerColor
{
get
{
return CinemachineSettings.UnpackColour(EditorPrefs.GetString(kFeelerColourKey, CinemachineSettings.PackColor(Color.gray)));
}
set
{
if (value != FeelerColor)
{
EditorPrefs.SetString(kFeelerColourKey, CinemachineSettings.PackColor(value));
}
}
}
private const string kColliderSettingsFoldoutKey = "CNMCN_Collider_Foldout";
private const string kFeelerHitColourKey = "CNMCN_Collider_FeelerHit_Colour";
private const string kFeelerColourKey = "CNMCN_Collider_Feeler_Colour";
static CinemachineColliderPrefs()
{
Cinemachine.Editor.CinemachineSettings.AdditionalCategories += DrawColliderSettings;
}
private static void DrawColliderSettings()
{
SettingsFoldedOut = EditorGUILayout.Foldout(SettingsFoldedOut, "Collider Settings", true);
if (SettingsFoldedOut)
{
EditorGUI.indentLevel++;
EditorGUI.BeginChangeCheck();
FeelerHitColor = EditorGUILayout.ColorField("Feeler Hit", FeelerHitColor);
FeelerColor = EditorGUILayout.ColorField("Feeler", FeelerColor);
if (EditorGUI.EndChangeCheck())
{
UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
}
EditorGUI.indentLevel--;
}
}
}
}