float LegacyModeGetPropertyHeight(SerializedProperty prop, GUIContent label) { SignalSourceAsset asset = null; float height = 0; mHideProperties.Clear(); string prefix = prop.name; prop.NextVisible(true); // Skip outer foldout do { if (!prop.propertyPath.Contains(prefix)) // if it is part of an array, then it won't StartWith prefix { break; } string header = HeaderText(prop); if (header != null) { height += HeaderHeight + vSpace; } // Do we hide this property? bool hide = false; if (prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_RawSignal)) { asset = prop.objectReferenceValue as SignalSourceAsset; } if (prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_RepeatMode)) { hide = asset == null || asset.SignalDuration <= 0; } else if (prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_Randomize)) { hide = asset == null || asset.SignalDuration > 0; } else { hide = prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_ImpulseShape) || prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_CustomImpulseShape) || prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_ImpulseDuration) || prop.name == SerializedPropertyHelper.PropertyName(() => m_MyClass.m_DissipationRate); } if (hide) { mHideProperties.Add(prop.name); } else { height += EditorGUI.GetPropertyHeight(prop, false) + vSpace; } } while (prop.NextVisible(prop.isExpanded)); return(height); }
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label) { CinemachineImpulseDefinition myClass = null; // to access name strings SignalSourceAsset asset = null; float height = 0; mHideProperties.Clear(); string prefix = prop.name; prop.NextVisible(true); // Skip outer foldout do { if (!prop.propertyPath.StartsWith(prefix)) { break; } string header = HeaderText(prop); if (header != null) { height += HeaderHeight + vSpace; } // Do we hide this property? bool hide = false; if (prop.name == SerializedPropertyHelper.PropertyName(() => myClass.m_RawSignal)) { asset = prop.objectReferenceValue as SignalSourceAsset; } if (prop.name == SerializedPropertyHelper.PropertyName(() => myClass.m_RepeatMode)) { hide = asset == null || asset.SignalDuration <= 0; } else if (prop.name == SerializedPropertyHelper.PropertyName(() => myClass.m_Randomize)) { hide = asset == null || asset.SignalDuration > 0; } if (hide) { mHideProperties.Add(prop.name); } else { height += EditorGUI.GetPropertyHeight(prop, false) + vSpace; } } while (prop.NextVisible(prop.isExpanded)); return(height); }