コード例 #1
0
 void CleanupSettingsAsset()
 {
     UnityHelpers.Destroy(m_WindowSettingsAsset, true);
     m_WindowSettingsAsset = ScriptableObject.CreateInstance <RecorderWindowSettings>();
     AssetDatabase.CreateAsset(m_WindowSettingsAsset, FRPackagerPaths.GetRecorderRootPath() + "/RecorderWindowSettings.asset");
     AssetDatabase.Refresh();
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 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);
         }
     }
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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();
                    }
                }
            }
        }