void CleanupSettingsAsset() { UnityHelpers.Destroy(m_WindowSettingsAsset, true); m_WindowSettingsAsset = ScriptableObject.CreateInstance <RecorderWindowSettings>(); AssetDatabase.CreateAsset(m_WindowSettingsAsset, FRPackagerPaths.GetRecorderRootPath() + "/RecorderWindowSettings.asset"); AssetDatabase.Refresh(); }
static void GenerateAssetStorePackage() { var rootPath = FRPackagerPaths.GetRecorderRootPath(); var type = Type.GetType("UnityEditor.Recorder.MovieRecorderPackager"); if (type != null) { var method = type.GetMethod("GeneratePackage"); method.Invoke(null, null); AssetDatabase.Refresh(); } UpdateVersion(); var files = new [] { Path.Combine(rootPath, "Recorder_install.pdf"), Path.Combine(rootPath, "Framework.meta"), Path.Combine(rootPath, "Framework/Core"), Path.Combine(rootPath, "Framework/Inputs"), Path.Combine(rootPath, "Framework/Recorders"), Path.Combine(rootPath, "Framework/Packager/Editor"), Path.Combine(rootPath, "Extensions/UTJ"), Path.Combine(rootPath, "Extensions/FCIntegration"), Path.Combine(rootPath, "Extensions/MovieRecorder/Packaging"), }; var destFile = k_PackageName + " " + RecorderVersion.Stage + " v" + RecorderVersion.Version + ".unitypackage"; AssetDatabase.ExportPackage(files, destFile, ExportPackageOptions.Recurse); Debug.Log("Generated package: " + destFile); }
static MovieRecorderPackagerInternal() // auto extracts { if (AutoExtractAllowed && AudioRecordingAvailable && MovieRecordingAvailable) { var pkgFile = Path.Combine(FRPackagerPaths.GetRecorderRootPath(), "Extensions/MovieRecorder/Packaging/" + k_PackageName); var tsFile = Path.Combine(FRPackagerPaths.GetRecorderRootPath(), "Extensions/MovieRecorder/Packaging/TS.txt"); var recDir = Path.Combine(FRPackagerPaths.GetRecorderRootPath(), "Extensions/MovieRecorder/Recorder"); if (File.Exists(pkgFile) && (!Directory.Exists(recDir) || File.GetLastWriteTime(pkgFile) > File.GetLastWriteTime(tsFile).AddMinutes(5))) // extra 5min to compensate for package write duration { Debug.Log("Importing MovieRecorder..."); AssetDatabase.ImportPackage(pkgFile, false); } } }
public static void GeneratePackage() { var rootPath = FRPackagerPaths.GetRecorderRootPath(); File.WriteAllText(Path.Combine(rootPath, "Extensions/MovieRecorder/Packaging/TS.txt"), DateTime.Now.ToString()); var files = new [] { Path.Combine(rootPath, "Extensions/MovieRecorder/Recorder"), Path.Combine(rootPath, "Extensions/MovieRecorder/Audio"), Path.Combine(rootPath, "Extensions/MovieRecorder/Recorder"), Path.Combine(rootPath, "Extensions/MovieRecorder/Packaging/Editor"), Path.Combine(rootPath, "Extensions/MovieRecorder/Packaging/TS.txt"), }; var destFile = Path.Combine(rootPath, "Extensions/MovieRecorder/Packaging/MovieRecorder.unitypackage"); AssetDatabase.ExportPackage(files, destFile, ExportPackageOptions.Recurse); Debug.Log("Generated package: " + destFile); }
static void GenerateAssetStorePackage() { var rootPath = FRPackagerPaths.GetRecorderRootPath(); UpdateVersion(1); var files = new [] { Path.Combine(rootPath, "Recorder_install.pdf"), Path.Combine(rootPath, "Framework.meta"), Path.Combine(rootPath, "Framework/Core"), Path.Combine(rootPath, "Framework/Inputs"), Path.Combine(rootPath, "Framework/Recorders"), Path.Combine(rootPath, "Framework/Packager/Editor"), Path.Combine(rootPath, "Extensions/UTJ"), Path.Combine(rootPath, "Extensions/FCIntegration"), Path.Combine(rootPath, "Extensions/MovieRecorder"), }; var destFile = k_PackageName + " " + RecorderVersion.Stage + " v" + RecorderVersion.Tag + ".unitypackage"; AssetDatabase.ExportPackage(files, destFile, ExportPackageOptions.Recurse); Debug.Log("Generated package: " + destFile); }
public void OnGUI() { try { m_ScrollPos = EditorGUILayout.BeginScrollView(m_ScrollPos); try { m_LastRepaint = DateTime.Now; // Bug? work arround: on Stop play, Enable is not called. if (m_Editor != null && m_Editor.target == null) { UnityHelpers.Destroy(m_Editor); m_Editor = null; m_recorderSelector = null; } if (m_recorderSelector == null) { if (m_WindowSettingsAsset == null) { var candidates = AssetDatabase.FindAssets("t:RecorderWindowSettings"); if (candidates.Length > 0) { var path = AssetDatabase.GUIDToAssetPath(candidates[0]); m_WindowSettingsAsset = AssetDatabase.LoadAssetAtPath <RecorderWindowSettings>(path); if (m_WindowSettingsAsset == null) { AssetDatabase.DeleteAsset(path); } } if (m_WindowSettingsAsset == null) { m_WindowSettingsAsset = ScriptableObject.CreateInstance <RecorderWindowSettings>(); AssetDatabase.CreateAsset(m_WindowSettingsAsset, FRPackagerPaths.GetRecorderRootPath() + "/RecorderWindowSettings.asset"); AssetDatabase.Refresh(); } } m_recorderSelector = new RecorderSelector(OnRecorderSelected, false); m_recorderSelector.Init(m_WindowSettingsAsset.m_Settings, m_Category); } if (m_State == EState.WaitingForPlayModeToStartRecording && EditorApplication.isPlaying) { DelayedStartRecording(); } using (new EditorGUI.DisabledScope(EditorApplication.isPlaying)) m_recorderSelector.OnGui(); if (m_Editor != null) { m_Editor.showBounds = true; using (new EditorGUI.DisabledScope(EditorApplication.isPlaying)) { EditorGUILayout.Separator(); m_Editor.OnInspectorGUI(); EditorGUILayout.Separator(); } RecordButtonOnGui(); GUILayout.Space(50); } } finally { EditorGUILayout.EndScrollView(); } } catch (ExitGUIException) { } catch (Exception ex) { if (m_State == EState.Recording) { try { Debug.LogError("Aborting recording due to an exception!\n" + ex.ToString()); StopRecording(); } catch (Exception) {} } else { EditorGUILayout.HelpBox("An exception was raised while editing the settings. This can be indicative of corrupted settings.", MessageType.Warning); if (GUILayout.Button("Reset settings to default")) { ResetSettings(); } } } }