#if !CINEMACHINE_NO_CM2_SUPPORT using System.Collections.Generic; using UnityEditor; namespace Unity.Cinemachine.Editor { [System.Obsolete] [CustomEditor(typeof(CinemachineTrackedDolly))] [CanEditMultipleObjects] class CinemachineTrackedDollyEditor : BaseEditor { /// Get the property names to exclude in the inspector. /// Add the names to this list protected override void GetExcludedPropertiesInInspector(List excluded) { base.GetExcludedPropertiesInInspector(excluded); switch (Target.m_CameraUp) { default: break; case CinemachineTrackedDolly.CameraUpMode.PathNoRoll: case CinemachineTrackedDolly.CameraUpMode.FollowTargetNoRoll: excluded.Add(FieldPath(x => x.m_RollDamping)); break; case CinemachineTrackedDolly.CameraUpMode.Default: excluded.Add(FieldPath(x => x.m_PitchDamping)); excluded.Add(FieldPath(x => x.m_YawDamping)); excluded.Add(FieldPath(x => x.m_RollDamping)); break; } } public override void OnInspectorGUI() { BeginInspector(); bool needWarning = false; for (int i = 0; !needWarning && i < targets.Length; ++i) needWarning = (targets[i] as CinemachineTrackedDolly).m_Path == null; if (needWarning) EditorGUILayout.HelpBox("A Path is required", MessageType.Warning); needWarning = false; for (int i = 0; !needWarning && i < targets.Length; ++i) needWarning = (targets[i] as CinemachineTrackedDolly).m_AutoDolly.m_Enabled && (targets[i] as CinemachineTrackedDolly).FollowTarget == null; if (needWarning) EditorGUILayout.HelpBox("AutoDolly requires a Follow Target", MessageType.Warning); DrawRemainingPropertiesInInspector(); } } } #endif