Ein Bisschen mehr Geilheit, achso und uMotion installiert

This commit is contained in:
Simon Lübeß
2024-04-08 12:34:21 +02:00
parent 8c1bb33bdf
commit f3e3868ef1
617 changed files with 676579 additions and 62 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 747652bb89215c641be828370972f946
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,125 @@
#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;
// Added because in Unity 2022.2 (alpha), the FileID of dlls has changed. In order to support all Unity versions, we need two different versions of the reference: One compatible pre 2022.2 and one post 2022.2.
public UnityEngine.Object AlternativeReference;
}
#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)
{
UnityEngine.Object reference = (resourceDef.Reference == null) ? resourceDef.AlternativeReference : resourceDef.Reference;
if (reference == null)
{
throw new UnityException(string.Format("Required resource \"{0}\" not found. Please reinstall UMotion.", resourceDef.Name));
}
else
{
resourcesDictionary.Add(resourceDef.Name, reference);
}
}
foreach (ResourceDefinition resourceDef in optionalResourcesList)
{
UnityEngine.Object reference = (resourceDef.Reference == null) ? resourceDef.AlternativeReference : resourceDef.Reference;
resourcesDictionary.Add(resourceDef.Name, reference);
}
}
}
}
#endif

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c4518f215ae949c4e9341e0353fc63b2
timeCreated: 1518871555
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
{
"name": "UMotionSourceApplication",
"references": [],
"includePlatforms": [
"Editor"
],
"excludePlatforms": []
}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8a7b60ba7421eeb4e9d4e0809ac8ccbd
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,156 @@
#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 Unity2020_2_OrNewer
{
get
{
#if UNITY_2020_2_OR_NEWER
return true;
#else
return false;
#endif
}
}
public static bool Unity2021_2_OrNewer
{
get
{
#if UNITY_2021_2_OR_NEWER
return true;
#else
return false;
#endif
}
}
public static bool Unity2022_2_OrNewer
{
get
{
#if UNITY_2022_2_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

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: fec42e10ecaca094ba9237b4c4b68039
timeCreated: 1513775087
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c2083eabd3abe2840866cb6515a60ea3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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
//********************************************************************************
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8bb13d32d833dc9428b3d5471491263c
timeCreated: 1479194383
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,92 @@
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using UnityEditor.Compilation;
#if UNITY_2021_2_OR_NEWER
using UnityEditor.SceneManagement;
#else
#if UNITY_2018_3_OR_NEWER
using UnityEditor.Experimental.SceneManagement;
#endif
#endif
namespace UMotionEditor
{
public static class EditorVersionCompatibilityUtility
{
//********************************************************************************
// Public Properties
//********************************************************************************
public static float HandlesLineThickness
{
get
{
#if UNITY_2020_2_OR_NEWER
return Handles.lineThickness;
#else
return 1f;
#endif
}
}
//********************************************************************************
// 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
}
public static void DrawWireArc(Vector3 center, Vector3 normal, Vector3 from, float angle, float radius, float thickness)
{
#if UNITY_2020_2_OR_NEWER
Handles.DrawWireArc(center, normal, from, angle, radius, thickness);
#else
Handles.DrawWireArc(center, normal, from, angle, radius);
#endif
}
//********************************************************************************
// Private Methods
//********************************************************************************
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4f6f554bcbc4309489c3a11930042443
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 903e27eafe5bb764db202389e0fefbfa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,10 @@
{
"name": "UMotionSourceEditor",
"references": [
"UMotionSourceApplication"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": []
}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b3ddaa7f43eb8574a8d6541276fc1a67
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: