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,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: