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); }
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); }