86 lines
2.6 KiB
C#
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--;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|