Beispiel #1
0
        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);
        }