Files
GameDevTVObstacleDodge/Library/PackageCache/com.unity.cinemachine@5342685532bb/Editor/Obsolete/OrbitalTransposerHeadingPropertyDrawer.cs

59 lines
2.3 KiB
C#
Raw Normal View History

2026-01-08 16:50:20 +00:00
#if !CINEMACHINE_NO_CM2_SUPPORT
using UnityEngine;
using UnityEditor;
namespace Unity.Cinemachine.Editor
{
[System.Obsolete]
[CustomPropertyDrawer(typeof(CinemachineOrbitalTransposer.Heading))]
class OrbitalTransposerHeadingPropertyDrawer : PropertyDrawer
{
const int vSpace = 2;
bool mExpanded = true;
CinemachineOrbitalTransposer.Heading def = new CinemachineOrbitalTransposer.Heading(); // to access name strings
public override void OnGUI(Rect rect, SerializedProperty property, GUIContent label)
{
float height = EditorGUIUtility.singleLineHeight;
rect.height = height;
mExpanded = EditorGUI.Foldout(rect, mExpanded, EditorGUI.BeginProperty(rect, label, property), true);
if (mExpanded)
{
++EditorGUI.indentLevel;
rect.y += height + vSpace;
EditorGUI.PropertyField(rect, property.FindPropertyRelative(() => def.m_Definition));
if (IsVelocityMode(property))
{
rect.y += height + vSpace;
EditorGUI.PropertyField(rect, property.FindPropertyRelative(() => def.m_VelocityFilterStrength));
}
rect.y += height + vSpace;
EditorGUI.PropertyField(rect, property.FindPropertyRelative(() => def.m_Bias));
--EditorGUI.indentLevel;
}
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
float height = EditorGUIUtility.singleLineHeight + vSpace;
if (mExpanded)
height *= IsVelocityMode(property) ? 4 : 3;
return height;
}
bool IsVelocityMode(SerializedProperty property)
{
var mode = property.FindPropertyRelative(() => def.m_Definition);
var value = (CinemachineOrbitalTransposer.Heading.HeadingDefinition)
(System.Enum.GetValues(typeof(CinemachineOrbitalTransposer.Heading.HeadingDefinition))).GetValue(mode.enumValueIndex);
return value == CinemachineOrbitalTransposer.Heading.HeadingDefinition.Velocity
|| value == CinemachineOrbitalTransposer.Heading.HeadingDefinition.PositionDelta;
}
}
}
#endif