Example #1
0
        float DrawRecordButton(Rect rect, WindowState state)
        {
            if (m_TrackDrawData.m_AllowsRecording)
            {
                bool isPlayerDisabled = state.editSequence.director != null && !state.editSequence.director.isActiveAndEnabled;

                GameObject goBinding = m_TrackDrawData.m_TrackBinding as GameObject;
                if (goBinding == null)
                {
                    Component c = m_TrackDrawData.m_TrackBinding as Component;
                    if (c != null)
                    {
                        goBinding = c.gameObject;
                    }
                }
                bool isTrackBindingValid     = goBinding != null;
                bool trackErrorDisableButton = !string.IsNullOrEmpty(m_TrackDrawOptions.errorText) && isTrackBindingValid && goBinding.activeInHierarchy;
                bool disableButton           = track.lockedInHierarchy || isPlayerDisabled || trackErrorDisableButton || !isTrackBindingValid;
                using (new EditorGUI.DisabledScope(disableButton))
                {
                    if (IsRecording(state))
                    {
                        state.editorWindow.Repaint();
                        float remainder = Time.realtimeSinceStartup % 1;

                        var animatedContent = s_ArmForRecordContentOn;
                        if (remainder < 0.22f)
                        {
                            animatedContent = GUIContent.none;
                        }
                        if (GUI.Button(rect, animatedContent, GUIStyle.none) || isPlayerDisabled || !isTrackBindingValid)
                        {
                            state.UnarmForRecord(track);
                        }
                    }
                    else
                    {
                        if (GUI.Button(rect, s_ArmForRecordContentOff, GUIStyle.none))
                        {
                            state.ArmForRecord(track);
                        }
                    }
                    return(WindowConstants.trackHeaderButtonSize);
                }
            }

            if (showTrackRecordingDisabled)
            {
                using (new EditorGUI.DisabledScope(true))
                    GUI.Button(rect, s_ArmForRecordDisabled, GUIStyle.none);
                return(k_ButtonSize);
            }

            return(0.0f);
        }
Example #2
0
        float DrawRecordButton(Rect rect, WindowState state)
        {
            if (m_TrackDrawData.m_AllowsRecording)
            {
                bool isPlayerDisabled = state.editSequence.director != null && !state.editSequence.director.isActiveAndEnabled;
                using (new EditorGUI.DisabledScope(track.lockedInHierarchy || isPlayerDisabled || !string.IsNullOrEmpty(m_TrackDrawOptions.errorText)))
                {
                    if (IsRecording(state))
                    {
                        state.editorWindow.Repaint();
                        float remainder = Time.realtimeSinceStartup % 1;

                        var animatedContent = s_ArmForRecordContentOn;
                        if (remainder < 0.22f)
                        {
                            animatedContent = GUIContent.none;
                        }
                        if (GUI.Button(rect, animatedContent, GUIStyle.none) || isPlayerDisabled)
                        {
                            state.UnarmForRecord(track);
                        }
                    }
                    else
                    {
                        if (GUI.Button(rect, s_ArmForRecordContentOff, GUIStyle.none))
                        {
                            state.ArmForRecord(track);
                        }
                    }
                    return(WindowConstants.trackHeaderButtonSize);
                }
            }

            if (showTrackRecordingDisabled)
            {
                using (new EditorGUI.DisabledScope(true))
                    GUI.Button(rect, s_ArmForRecordDisabled, GUIStyle.none);
                return(k_ButtonSize);
            }

            return(0.0f);
        }