public void OnRecorderSelected() { if (m_Editor != null) { UnityHelpers.Destroy(m_Editor); m_Editor = null; } if (m_recorderSelector.selectedRecorder == null) { return; } m_Category = m_recorderSelector.category; if (m_WindowSettingsAsset.m_Settings != null && RecordersInventory.GetRecorderInfo(m_recorderSelector.selectedRecorder).settingsClass != m_WindowSettingsAsset.m_Settings.GetType()) { CleanupSettingsAsset(); } if (m_WindowSettingsAsset.m_Settings == null) { m_WindowSettingsAsset.m_Settings = RecordersInventory.GenerateRecorderInitialSettings(m_WindowSettingsAsset, m_recorderSelector.selectedRecorder); } m_Editor = Editor.CreateEditor(m_WindowSettingsAsset.m_Settings) as RecorderEditor; AssetDatabase.Refresh(); }
public void Init(RecorderSettings settings, string startingCategory = "") { // Pre existing settings obj? if (settings != null) { var recInfo = RecordersInventory.GetRecorderInfo(settings.recorderType); // category value overrides existing settings. if (!string.IsNullOrEmpty(startingCategory)) { if (string.Compare(recInfo.category, startingCategory, StringComparison.InvariantCultureIgnoreCase) != 0) { // forced another category, flush existing settings obj. SetCategory(startingCategory); SelectRecorder(GetRecorderFromIndex(0)); } } // Not invalidated by category, so set and we are done if (settings != null) { SetCategory(recInfo.category); SelectRecorder(settings.recorderType); return; } } else { SetCategory(startingCategory); } }
RecorderItem CreateRecorderItem(RecorderSettings recorderSettings) { var info = RecordersInventory.GetRecorderInfo(recorderSettings.GetType()); var hasError = info == null; var recorderItem = new RecorderItem(m_ControllerSettings, recorderSettings, hasError ? null : info.iconName); recorderItem.OnEnableStateChanged += enabled => { if (enabled) { m_RecordingListItem.selection = recorderItem; } }; if (hasError) { recorderItem.state = RecorderItem.State.HasErrors; } return(recorderItem); }