Ein Bisschen mehr Geilheit, achso und uMotion installiert
This commit is contained in:
@ -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
|
||||
@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4518f215ae949c4e9341e0353fc63b2
|
||||
timeCreated: 1518871555
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "UMotionSourceApplication",
|
||||
"references": [],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": []
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a7b60ba7421eeb4e9d4e0809ac8ccbd
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -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
|
||||
@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fec42e10ecaca094ba9237b4c4b68039
|
||||
timeCreated: 1513775087
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user