Exemplo n.º 1
0
        // Render color property.
        public bool RenderColorGroupProperty(ProfileGroupDefinition def)
        {
            EditorGUILayout.BeginHorizontal();

            ColorKeyframeGroup group = m_Profile.GetGroup <ColorKeyframeGroup>(def.propertyKey);

            EditorGUILayout.PrefixLabel(new GUIContent(group.name, def.tooltip));
            bool valueChanged = false;

            if (m_Profile.IsManagedByTimeline(def.propertyKey))
            {
                RenderManagedOnTimlineMessage();
            }
            else
            {
                ColorKeyframe frame = group.GetKeyframe(0);

                EditorGUI.BeginChangeCheck();
                Color selectedColor = EditorGUILayout.ColorField(frame.color);
                if (EditorGUI.EndChangeCheck())
                {
                    Undo.RecordObject(m_Profile, "Changed color keyframe value");
                    frame.color  = selectedColor;
                    valueChanged = true;
                }
            }

            EditorGUILayout.EndHorizontal();
            return(valueChanged);
        }
Exemplo n.º 2
0
        private void InsertKeyframeInColorGroup(float time, ColorKeyframeGroup group)
        {
            ColorKeyframe previousKeyFrame = group.GetPreviousKeyFrame(time);
            //Color keyColor = previousKeyFrame != null ? previousKeyFrame.color : Color.white;
            ColorKeyframe newKeyFrame = new ColorKeyframe(previousKeyFrame);

            newKeyFrame.time = time;
            group.AddKeyFrame(newKeyFrame);

            KeyframeInspectorWindow.SetKeyframeData(
                newKeyFrame, group, KeyframeInspectorWindow.KeyType.Color, m_ActiveSkyProfile);
        }
Exemplo n.º 3
0
        public static void RenderColorGroupRow(Rect rect, SkyProfile profile, ColorKeyframeGroup colors)
        {
            bool sortGroup = false;

            RenderColorGroupRow(rect, colors);

            for (int i = 0; i < colors.keyframes.Count; i++)
            {
                ColorKeyframe currentKey = colors.GetKeyframe(i);

                // Track key marker mouse events and render.
                bool didSingleClick  = false;
                bool isDragging      = false;
                bool keyframeUpdated = false;
                SkyEditorUtility.DrawHorizontalKeyMarker(rect, currentKey, profile,
                                                         out didSingleClick, out isDragging, out keyframeUpdated);

                if (keyframeUpdated)
                {
                    sortGroup = true;
                }

                // Show the color keyframe property window.
                if (didSingleClick || isDragging)
                {
                    // Load info about this keyframe and show the editor window.
                    KeyframeInspectorWindow.SetKeyframeData(
                        currentKey, colors, KeyframeInspectorWindow.KeyType.Color, profile);

                    if (didSingleClick)
                    {
                        KeyframeInspectorWindow.ShowWindow();
                    }
                }
            }

            if (sortGroup)
            {
                colors.SortKeyframes();
            }
        }
Exemplo n.º 4
0
        private bool RenderColorGUI()
        {
            ColorKeyframe colorKeyFrame = keyframe as ColorKeyframe;

            if (colorKeyFrame == null)
            {
                return(false);
            }

            bool didModify = false;

            EditorGUI.BeginChangeCheck();
            Color selectedColor = EditorGUILayout.ColorField(new GUIContent("Color"), colorKeyFrame.color);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(profile, "Keyframe color changed.");
                colorKeyFrame.color = selectedColor;
                didModify           = true;
            }

            return(didModify);
        }
Exemplo n.º 5
0
 public ColorKeyframe(ColorKeyframe keyframe) : base(keyframe.time)
 {
     this.color             = keyframe.color;
     interpolationCurve     = keyframe.interpolationCurve;
     interpolationDirection = keyframe.interpolationDirection;
 }