summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/UMotion/UMotionEditor/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/UMotion/UMotionEditor/Scripts')
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application.meta8
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs120
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs.meta12
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef8
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef.meta7
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs118
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs.meta12
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor.meta8
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs105
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs.meta12
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs67
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs.meta11
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs102
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs.meta11
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef10
-rw-r--r--Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef.meta7
16 files changed, 618 insertions, 0 deletions
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application.meta
new file mode 100644
index 00000000..2b10204b
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a26ff1eb510bf24e9f039ea67cde26b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs
new file mode 100644
index 00000000..7f5392be
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs
@@ -0,0 +1,120 @@
+#if UNITY_EDITOR
+using UnityEngine;
+using UnityEditor;
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace UMotionEditor
+{
+ public class AssetResourcesFile : ScriptableObject
+ {
+ //********************************************************************************
+ // Public Properties
+ //********************************************************************************
+
+ //********************************************************************************
+ // Private Properties
+ //********************************************************************************
+
+ #pragma warning disable 0649 // Suppress "Field 'field' is never assigned to, and will always have its default value 'value'"
+ [Serializable]
+ private struct ResourceDefinition
+ {
+ public string Name;
+ public UnityEngine.Object Reference;
+ }
+ #pragma warning restore 0649
+
+ //----------------------
+ // Inspector
+ //----------------------
+ [SerializeField]private List<ResourceDefinition> resourcesList = new List<ResourceDefinition>();
+ [SerializeField]private List<ResourceDefinition> optionalResourcesList = new List<ResourceDefinition>();
+ private Dictionary<string, UnityEngine.Object> resourcesDictionary = new Dictionary<string, UnityEngine.Object>();
+
+ //----------------------
+ // Internal
+ //----------------------
+
+ //********************************************************************************
+ // Public Methods
+ //********************************************************************************
+
+ public static AssetResourcesFile FindAssetResourcesFile()
+ {
+ string[] resourceFilesGUID = AssetDatabase.FindAssets("UMotionResources t:AssetResourcesFile");
+
+ if (resourceFilesGUID.Length > 1)
+ {
+ throw new UnityException("More than one resource file was found. Please remove all UMotion files and install UMotion again.");
+ }
+ else if (resourceFilesGUID.Length == 0)
+ {
+ throw new UnityException("Resource file not found. Please install UMotion again.");
+ }
+ else
+ {
+ AssetResourcesFile resourceFile = AssetDatabase.LoadAssetAtPath<AssetResourcesFile>(AssetDatabase.GUIDToAssetPath(resourceFilesGUID[0]));
+
+ resourceFile.InitializeDictionary();
+
+ return resourceFile;
+ }
+ }
+
+ public string GetEditorDataPath()
+ {
+ string resourcesPath = AssetDatabase.GetAssetPath(this);
+
+ string dataPath = Path.GetDirectoryName(resourcesPath);
+ dataPath = Path.Combine(Path.GetDirectoryName(dataPath), "Data");
+
+ return dataPath;
+ }
+
+ public T GetResource<T>(string name, bool required = true) where T : UnityEngine.Object
+ {
+ T loadedObject = null;
+ UnityEngine.Object obj;
+ if (resourcesDictionary.TryGetValue(name, out obj))
+ {
+ loadedObject = obj as T;
+ }
+
+ if (required && (loadedObject == null))
+ {
+ throw new Exception(string.Format("Resource \"{0}\" can not be loaded.", name));
+ }
+ else
+ {
+ return loadedObject;
+ }
+ }
+
+ //********************************************************************************
+ // Private Methods
+ //********************************************************************************
+
+ private void InitializeDictionary()
+ {
+ resourcesDictionary.Clear();
+ foreach (ResourceDefinition resourceDef in resourcesList)
+ {
+ if (resourceDef.Reference == null)
+ {
+ throw new UnityException(string.Format("Required resource \"{0}\" not found. Please reinstall UMotion.", resourceDef.Name));
+ }
+ else
+ {
+ resourcesDictionary.Add(resourceDef.Name, resourceDef.Reference);
+ }
+ }
+ foreach (ResourceDefinition resourceDef in optionalResourcesList)
+ {
+ resourcesDictionary.Add(resourceDef.Name, resourceDef.Reference);
+ }
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs.meta
new file mode 100644
index 00000000..51a5302c
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/AssetResourcesFile.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c4518f215ae949c4e9341e0353fc63b2
+timeCreated: 1518871555
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef
new file mode 100644
index 00000000..4542f3cd
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef
@@ -0,0 +1,8 @@
+{
+ "name": "UMotionSourceApplication",
+ "references": [],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": []
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef.meta
new file mode 100644
index 00000000..736fcd69
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/UMotionSourceApplication.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8a7b60ba7421eeb4e9d4e0809ac8ccbd
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs
new file mode 100644
index 00000000..ee7861ff
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs
@@ -0,0 +1,118 @@
+#if UNITY_EDITOR
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEngine;
+
+namespace UMotionEditor
+{
+ public static class VersionCompatibilityUtility
+ {
+ #if !UNITY_2017_4_OR_NEWER
+ #error "This Unity version is not supported by UMotion. Please update to Unity 2017.4 or higher."
+ #endif
+
+ //********************************************************************************
+ // Public Properties
+ //********************************************************************************
+
+ public enum EditorPlatform
+ {
+ Windows = 0,
+ Mac,
+ Linux,
+ Invalid
+ }
+
+ public static EditorPlatform CurrentEditorPlatform
+ {
+ get
+ {
+ switch (Application.platform)
+ {
+ case RuntimePlatform.WindowsEditor:
+ return EditorPlatform.Windows;
+
+ case RuntimePlatform.OSXEditor:
+ return EditorPlatform.Mac;
+
+ case RuntimePlatform.LinuxEditor:
+ return EditorPlatform.Linux;
+
+ default:
+ return EditorPlatform.Invalid;
+ }
+ }
+ }
+
+ public static bool Unity2018_1_OrNewer
+ {
+ get
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return true;
+ #else
+ return false;
+ #endif
+ }
+ }
+
+ public static bool Unity2018_3_OrNewer
+ {
+ get
+ {
+ #if UNITY_2018_3_OR_NEWER
+ return true;
+ #else
+ return false;
+ #endif
+ }
+ }
+
+ public static bool Unity2019_1_Or_Newer
+ {
+ get
+ {
+ #if UNITY_2019_1_OR_NEWER
+ return true;
+ #else
+ return false;
+ #endif
+ }
+ }
+
+ public static bool UsesScriptableRenderPipeline
+ {
+ get
+ {
+ #if UNITY_2019_1_OR_NEWER
+ return (UnityEngine.Rendering.RenderPipelineManager.currentPipeline != null);
+ #else
+ #if UNITY_2018_1_OR_NEWER
+ return (UnityEngine.Experimental.Rendering.RenderPipelineManager.currentPipeline != null);
+ #else
+ return false;
+ #endif
+ #endif
+ }
+ }
+
+ public static string GetCurrentAssemblyName()
+ {
+ return Assembly.GetExecutingAssembly().GetName().Name;
+ }
+
+ //********************************************************************************
+ // Private Properties
+ //********************************************************************************
+
+ //********************************************************************************
+ // Public Methods
+ //********************************************************************************
+
+ //********************************************************************************
+ // Private Methods
+ //********************************************************************************
+ }
+}
+#endif \ No newline at end of file
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs.meta
new file mode 100644
index 00000000..b9cea14f
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Application/VersionCompatibilityUtility.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: fec42e10ecaca094ba9237b4c4b68039
+timeCreated: 1513775087
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor.meta
new file mode 100644
index 00000000..a41e5cbc
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fcb056d1b4dd3f841a0b579485155304
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs
new file mode 100644
index 00000000..0b44b879
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs
@@ -0,0 +1,105 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+using System.Reflection;
+
+namespace UMotionEditor
+{
+ public static class AnimationCurveUtilityRecent
+ {
+ //********************************************************************************
+ // Public Properties
+ //********************************************************************************
+
+ public static bool WeightedTangentsImplemented
+ {
+ get
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return true;
+ #else
+ return false;
+ #endif
+ }
+ }
+
+ //********************************************************************************
+ // Private Properties
+ //********************************************************************************
+
+ //----------------------
+ // Inspector
+ //----------------------
+
+ //----------------------
+ // Internal
+ //----------------------
+
+ //********************************************************************************
+ // Public Methods
+ //********************************************************************************
+
+ public static void SetKeyWeightedMode(ref Keyframe key, int weightedMode)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ key.weightedMode = (WeightedMode)weightedMode;
+ #endif
+ }
+
+ public static int GetKeyWeightedMode(Keyframe key)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return (int)key.weightedMode;
+ #else
+ return 0;
+ #endif
+ }
+
+ public static void SetKeyLeftWeight(ref Keyframe key, float weight)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ key.inWeight = weight;
+ #endif
+ }
+
+ public static float GetKeyLeftWeight(Keyframe key)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return key.inWeight;
+ #else
+ return 1f / 3f;
+ #endif
+ }
+
+ public static void SetKeyRightWeight(ref Keyframe key, float weight)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ key.outWeight = weight;
+ #endif
+ }
+
+ public static float GetKeyRightWeight(Keyframe key)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return key.outWeight;
+ #else
+ return 1f / 3f;
+ #endif
+ }
+
+ public static void InitializeKeyframe(int frame, float value, float inTangent, float outTangent, int weightedMode, float leftWeight, float rightWeight, out Keyframe key)
+ {
+ key = new Keyframe(frame, value, inTangent, outTangent);
+
+ #if UNITY_2018_1_OR_NEWER
+ key.weightedMode = (WeightedMode)weightedMode;
+ key.inWeight = leftWeight;
+ key.outWeight = rightWeight;
+ #endif
+ }
+
+ //********************************************************************************
+ // Private Methods
+ //********************************************************************************
+ }
+}
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs.meta
new file mode 100644
index 00000000..b37e9a7a
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/AnimationCurveUtilityRecent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8bb13d32d833dc9428b3d5471491263c
+timeCreated: 1479194383
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs
new file mode 100644
index 00000000..318bd59e
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs
@@ -0,0 +1,67 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using UnityEditor.Compilation;
+#if UNITY_2018_3_OR_NEWER
+using UnityEditor.Experimental.SceneManagement;
+#endif
+
+namespace UMotionEditor
+{
+ public static class EditorVersionCompatibilityUtility
+ {
+ //********************************************************************************
+ // Public Properties
+ //********************************************************************************
+
+ //********************************************************************************
+ // Private Properties
+ //********************************************************************************
+
+ //----------------------
+ // Inspector
+ //----------------------
+
+ //----------------------
+ // Internal
+ //----------------------
+
+ //********************************************************************************
+ // Public Methods
+ //********************************************************************************
+
+ public static bool IsModelPrefab(GameObject gameObject)
+ {
+ #if UNITY_2018_3_OR_NEWER
+ return (PrefabUtility.GetPrefabAssetType(gameObject) == PrefabAssetType.Model);
+ #else
+ return (PrefabUtility.GetPrefabType(gameObject) == PrefabType.ModelPrefab);
+ #endif
+ }
+
+ public static bool IsPrefab(GameObject gameObject)
+ {
+ #if UNITY_2018_3_OR_NEWER
+ return (PrefabUtility.GetPrefabAssetType(gameObject) != PrefabAssetType.NotAPrefab);
+ #else
+ return (PrefabUtility.GetPrefabType(gameObject) != PrefabType.None);
+ #endif
+ }
+
+ public static bool IsInPrefabStage()
+ {
+ #if UNITY_2018_3_OR_NEWER
+ return (PrefabStageUtility.GetCurrentPrefabStage() != null);
+ #else
+ return false;
+ #endif
+ }
+
+ //********************************************************************************
+ // Private Methods
+ //********************************************************************************
+
+ }
+}
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs.meta
new file mode 100644
index 00000000..2c0ed15d
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/EditorVersionCompatibilityUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4f6f554bcbc4309489c3a11930042443
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs
new file mode 100644
index 00000000..73a44bd4
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Reflection;
+using UnityEngine;
+using UnityEditor;
+
+namespace UMotionEditor
+{
+ public static class GUICompatibilityUtility
+ {
+ //********************************************************************************
+ // Public Properties
+ //********************************************************************************
+
+ public static event System.Action<SceneView> OnSceneGui
+ {
+ add
+ {
+ #if UNITY_2019_1_OR_NEWER
+ SceneView.duringSceneGui += value;
+ #else
+ legacySceneViewGUI += value;
+ if (!initialized)
+ {
+ // Doing this in a static constructor instead caused an exception in Unity 2017.4
+ SceneView.onSceneGUIDelegate += delegate(SceneView sceneView) { legacySceneViewGUI(sceneView); };
+ initialized = true;
+ }
+ #endif
+ }
+ remove
+ {
+ #if UNITY_2019_1_OR_NEWER
+ SceneView.duringSceneGui -= value;
+ #else
+ legacySceneViewGUI -= value;
+ #endif
+ }
+ }
+
+ //********************************************************************************
+ // Private Properties
+ //********************************************************************************
+
+ //----------------------
+ // Inspector
+ //----------------------
+
+ //----------------------
+ // Internal
+ //----------------------
+ #if !UNITY_2019_1_OR_NEWER
+ private static event System.Action<SceneView> legacySceneViewGUI;
+ private static bool initialized = false;
+ #endif
+
+ //********************************************************************************
+ // Public Methods
+ //********************************************************************************
+
+ [MenuItem("Window/UMotion Editor/Contact Support", true, 1232)]
+ public static bool UMotionSupportMenuItemValidate()
+ {
+ CheckCurrentAssembly();
+ return true;
+ }
+
+ [MenuItem("Window/UMotion Editor/Contact Support", false, 1232)]
+ public static void UMotionSupportMenuItem()
+ {
+ Help.BrowseURL("https://support.soxware.com");
+ }
+
+ public static Color ColorField(GUIContent label, Color value, bool showEyedropper, bool showAlpha, bool hdr, params GUILayoutOption[] options)
+ {
+ #if UNITY_2018_1_OR_NEWER
+ return EditorGUILayout.ColorField(label, value, showEyedropper, showAlpha, hdr, options);
+ #else
+ return EditorGUILayout.ColorField(label, value, showEyedropper, showAlpha, hdr, null, options);
+ #endif
+ }
+
+ //********************************************************************************
+ // Private Methods
+ //********************************************************************************
+
+ private static bool CheckCurrentAssembly()
+ {
+ string applicationAssemblyName = VersionCompatibilityUtility.GetCurrentAssemblyName();
+ string editorAssemblyName = Assembly.GetExecutingAssembly().GetName().Name;
+
+ bool assemblyOk = (applicationAssemblyName == "UMotionSourceApplication") && (editorAssemblyName == "UMotionSourceEditor");
+
+ if (!assemblyOk)
+ {
+ string message = string.Format("The UMotion script files are not compiled to the correct assembly:\r\n\r\n\"{0}\"\r\n(should be \"UMotionSourceApplication\")\r\n\r\n\"{1}\"\r\n(should be \"UMotionSourceEditor\")\r\n\r\nMake sure that you haven't deleted or re-named the assembly definition files inside the UMotion folder.", applicationAssemblyName, editorAssemblyName);
+ EditorUtility.DisplayDialog("UMotion - Invalid Assembly", message, "OK");
+ }
+
+ return assemblyOk;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs.meta
new file mode 100644
index 00000000..827bf914
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/GUICompatibilityUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 903e27eafe5bb764db202389e0fefbfa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef
new file mode 100644
index 00000000..0684a8ac
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef
@@ -0,0 +1,10 @@
+{
+ "name": "UMotionSourceEditor",
+ "references": [
+ "UMotionSourceApplication"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": []
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef.meta b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef.meta
new file mode 100644
index 00000000..0c0620b0
--- /dev/null
+++ b/Assets/ThirdParty/UMotion/UMotionEditor/Scripts/Editor/UMotionSourceEditor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b3ddaa7f43eb8574a8d6541276fc1a67
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: