1
0
mirror of https://github.com/Cardidi/dotween-upm-fork.git synced 2026-02-04 22:34:56 +08:00

Completed Module System usability (upgrade testing required)

This commit is contained in:
Demigiant 2018-07-16 12:13:20 +02:00
parent 3da538a1a0
commit f32507af95
23 changed files with 409 additions and 802 deletions

View File

@ -35,8 +35,12 @@ namespace DG.Tweening.Core
_unscaledTime = Time.realtimeSinceStartup; _unscaledTime = Time.realtimeSinceStartup;
// Initialize DOTweenModuleUtils via Reflection // Initialize DOTweenModuleUtils via Reflection
// TODO DOTweenModuleUtils.Init > verify that this works Type modules = Utils.GetLooseScriptType("DG.Tweening.DOTweenModuleUtils");
MethodInfo mi = Type.GetType("DG.Tweening.DOTweenModuleUtils").GetMethod("Init", BindingFlags.Static | BindingFlags.Public); if (modules == null) {
Debug.LogError("DOTween ► Couldn't load Modules system");
return;
}
MethodInfo mi = modules.GetMethod("Init", BindingFlags.Static | BindingFlags.Public);
mi.Invoke(null, null); mi.Invoke(null, null);
} }

View File

@ -4,12 +4,19 @@
// License Copyright (c) Daniele Giardini. // License Copyright (c) Daniele Giardini.
// This work is subject to the terms at http://dotween.demigiant.com/license.php // This work is subject to the terms at http://dotween.demigiant.com/license.php
using System;
using System.Reflection;
using UnityEngine; using UnityEngine;
namespace DG.Tweening.Core namespace DG.Tweening.Core
{ {
internal static class Utils internal static class Utils
{ {
static Assembly[] _loadedAssemblies;
static readonly string[] _defAssembliesToQuery = new[] { // First assemblies to look into before checking all of them
"Assembly-CSharp", "Assembly-CSharp-firstpass"
};
/// <summary> /// <summary>
/// Returns a Vector3 with z = 0 /// Returns a Vector3 with z = 0
/// </summary> /// </summary>
@ -44,6 +51,27 @@ namespace DG.Tweening.Core
&& Mathf.Approximately(a.z, b.z); && Mathf.Approximately(a.z, b.z);
} }
/// <summary>
/// Looks for the type withing all possible project assembly names
/// </summary>
internal static Type GetLooseScriptType(string typeName)
{
// Check in default assemblies (Unity 2017 and later)
for (int i = 0; i < _defAssembliesToQuery.Length; ++i) {
Type result = Type.GetType(string.Format("{0}, {1}", typeName, _defAssembliesToQuery[i]));
if (result == null) continue;
return result;
}
// Check in all assemblies
if (_loadedAssemblies == null) _loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
for (int i = 0; i < _loadedAssemblies.Length; ++i) {
Type result = Type.GetType(string.Format("{0}, {1}", typeName, _loadedAssemblies[i].GetName()));
if (result == null) continue;
return result;
}
return null;
}
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

View File

@ -14,7 +14,8 @@ namespace DG.DOTweenEditor.Core
public static GUIStyle boldLabelStyle, public static GUIStyle boldLabelStyle,
setupLabelStyle, setupLabelStyle,
redLabelStyle, redLabelStyle,
btStyle, btBigStyle,
btSetup,
btImgStyle, btImgStyle,
wrapCenterLabelStyle; wrapCenterLabelStyle;
public static GUIStyle handlelabelStyle, public static GUIStyle handlelabelStyle,
@ -141,8 +142,13 @@ namespace DG.DOTweenEditor.Core
wrapCenterLabelStyle.wordWrap = true; wrapCenterLabelStyle.wordWrap = true;
wrapCenterLabelStyle.alignment = TextAnchor.MiddleCenter; wrapCenterLabelStyle.alignment = TextAnchor.MiddleCenter;
btStyle = new GUIStyle(GUI.skin.button); btBigStyle = new GUIStyle(GUI.skin.button);
btStyle.padding = new RectOffset(0, 0, 10, 10); btBigStyle.padding = new RectOffset(0, 0, 10, 10);
btSetup = new GUIStyle(btBigStyle);
btSetup.padding = new RectOffset(36, 36, 6, 6);
btSetup.wordWrap = true;
btSetup.richText = true;
// //

View File

@ -81,12 +81,14 @@ namespace DG.DOTweenEditor.Core
} }
/// <summary> /// <summary>
/// Returns TRUE if addons setup is required. /// Returns TRUE if addons setup is required (legacy: now it always returns TRUE).
/// </summary> /// </summary>
public static bool DOTweenSetupRequired() public static bool DOTweenSetupRequired()
{ {
if (!Directory.Exists(dotweenDir)) return false; // Can happen if we were deleting DOTween return false;
return Directory.GetFiles(dotweenDir, "*.addon").Length > 0 || hasPro && Directory.GetFiles(dotweenProDir, "*.addon").Length > 0; // Legacy method
// if (!Directory.Exists(dotweenDir)) return false; // Can happen if we were deleting DOTween
// return Directory.GetFiles(dotweenDir, "*.addon").Length > 0 || hasPro && Directory.GetFiles(dotweenProDir, "*.addon").Length > 0;
} }
// Deletes the files used in older versions of DOTween where Modules still didn't exist // Deletes the files used in older versions of DOTween where Modules still didn't exist
@ -246,17 +248,19 @@ namespace DG.DOTweenEditor.Core
public static void AddGlobalDefine(string id) public static void AddGlobalDefine(string id)
{ {
bool added = false; bool added = false;
int totGroupsModified = 0;
BuildTargetGroup[] targetGroups = (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup)); BuildTargetGroup[] targetGroups = (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup));
foreach(BuildTargetGroup btg in targetGroups) { foreach(BuildTargetGroup btg in targetGroups) {
if (btg == BuildTargetGroup.Unknown) continue; if (!IsValidBuildTargetGroup(btg)) continue;
string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg); string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg);
string[] singleDefs = defs.Split(';'); string[] singleDefs = defs.Split(';');
if (Array.IndexOf(singleDefs, id) != -1) continue; // Already present if (Array.IndexOf(singleDefs, id) != -1) continue; // Already present
added = true; added = true;
totGroupsModified++;
defs += defs.Length > 0 ? ";" + id : id; defs += defs.Length > 0 ? ";" + id : id;
PlayerSettings.SetScriptingDefineSymbolsForGroup(btg, defs); PlayerSettings.SetScriptingDefineSymbolsForGroup(btg, defs);
} }
if (added) Debug.Log("DOTween : added global define " + id); if (added) Debug.Log(string.Format("DOTween : added global define \"{0}\" to {1} BuildTargetGroups", id, totGroupsModified));
} }
/// <summary> /// <summary>
@ -265,13 +269,15 @@ namespace DG.DOTweenEditor.Core
public static void RemoveGlobalDefine(string id) public static void RemoveGlobalDefine(string id)
{ {
bool removed = false; bool removed = false;
int totGroupsModified = 0;
BuildTargetGroup[] targetGroups = (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup)); BuildTargetGroup[] targetGroups = (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup));
foreach(BuildTargetGroup btg in targetGroups) { foreach(BuildTargetGroup btg in targetGroups) {
if (btg == BuildTargetGroup.Unknown) continue; if (!IsValidBuildTargetGroup(btg)) continue;
string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg); string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg);
string[] singleDefs = defs.Split(';'); string[] singleDefs = defs.Split(';');
if (Array.IndexOf(singleDefs, id) == -1) continue; // Not present if (Array.IndexOf(singleDefs, id) == -1) continue; // Not present
removed = true; removed = true;
totGroupsModified++;
_Strb.Length = 0; _Strb.Length = 0;
for (int i = 0; i < singleDefs.Length; ++i) { for (int i = 0; i < singleDefs.Length; ++i) {
if (singleDefs[i] == id) continue; if (singleDefs[i] == id) continue;
@ -281,7 +287,7 @@ namespace DG.DOTweenEditor.Core
PlayerSettings.SetScriptingDefineSymbolsForGroup(btg, _Strb.ToString()); PlayerSettings.SetScriptingDefineSymbolsForGroup(btg, _Strb.ToString());
} }
_Strb.Length = 0; _Strb.Length = 0;
if (removed) Debug.Log("DOTween : removed global define " + id); if (removed) Debug.Log(string.Format("DOTween : removed global define \"{0}\" from {1} BuildTargetGroups", id, totGroupsModified));
} }
/// <summary> /// <summary>
@ -296,7 +302,7 @@ namespace DG.DOTweenEditor.Core
? (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup)) ? (BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup))
: new[] {(BuildTargetGroup)buildTargetGroup}; : new[] {(BuildTargetGroup)buildTargetGroup};
foreach(BuildTargetGroup btg in targetGroups) { foreach(BuildTargetGroup btg in targetGroups) {
if (btg == BuildTargetGroup.Unknown) continue; if (!IsValidBuildTargetGroup(btg)) continue;
string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg); string defs = PlayerSettings.GetScriptingDefineSymbolsForGroup(btg);
string[] singleDefs = defs.Split(';'); string[] singleDefs = defs.Split(';');
if (Array.IndexOf(singleDefs, id) != -1) return true; if (Array.IndexOf(singleDefs, id) != -1) return true;
@ -358,5 +364,28 @@ namespace DG.DOTweenEditor.Core
T data = ScriptableObject.CreateInstance<T>(); T data = ScriptableObject.CreateInstance<T>();
AssetDatabase.CreateAsset(data, adbFilePath); AssetDatabase.CreateAsset(data, adbFilePath);
} }
static bool IsValidBuildTargetGroup(BuildTargetGroup group)
{
if (group == BuildTargetGroup.Unknown) return false;
Type moduleManager = Type.GetType("UnityEditor.Modules.ModuleManager, UnityEditor.dll");
// MethodInfo miIsPlatformSupportLoaded = moduleManager.GetMethod("IsPlatformSupportLoaded", BindingFlags.Static | BindingFlags.NonPublic);
MethodInfo miGetTargetStringFromBuildTargetGroup = moduleManager.GetMethod(
"GetTargetStringFromBuildTargetGroup", BindingFlags.Static | BindingFlags.NonPublic
);
MethodInfo miGetPlatformName = typeof(PlayerSettings).GetMethod(
"GetPlatformName", BindingFlags.Static | BindingFlags.NonPublic
);
string targetString = (string)miGetTargetStringFromBuildTargetGroup.Invoke(null, new object[] {group});
string platformName = (string)miGetPlatformName.Invoke(null, new object[] {group});
// Group is valid if at least one betweeen targetString and platformName is not empty.
// This seems to me the safest and more reliant way to check,
// since ModuleManager.IsPlatformSupportLoaded dosn't work well with BuildTargetGroup (only BuildTarget)
bool isValid = !string.IsNullOrEmpty(targetString) || !string.IsNullOrEmpty(platformName);
// Debug.Log((isValid ? "<color=#00ff00>" : "<color=#ff0000>") + group + " > " + targetString + " / " + platformName + " > " + isValid + "/" + miIsPlatformSupportLoaded.Invoke(null, new object[] {group.ToString()}) + "</color>");
return isValid;
}
} }
} }

View File

@ -79,7 +79,7 @@
<Compile Include="DOTweenInspector.cs" /> <Compile Include="DOTweenInspector.cs" />
<Compile Include="DOTweenModulesSetupGUI.cs" /> <Compile Include="DOTweenModulesSetupGUI.cs" />
<Compile Include="DOTweenSettingsInspector.cs" /> <Compile Include="DOTweenSettingsInspector.cs" />
<Compile Include="DOTweenSetupMenuItem.cs" /> <Compile Include="DOTweenSetup.cs" />
<Compile Include="DOTweenUtilityWindow.cs" /> <Compile Include="DOTweenUtilityWindow.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>

View File

@ -23,14 +23,14 @@ namespace DG.DOTweenEditor
public static void Refresh() public static void Refresh()
{ {
_hasAudioModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_AudioModule); _hasAudioModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_AudioModule);
_hasPhysicsModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_PhysicsModule); _hasPhysicsModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_PhysicsModule);
_hasPhysics2DModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_Physics2DModule); _hasPhysics2DModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_Physics2DModule);
_hasSpriteModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_SpriteModule); _hasSpriteModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_SpriteModule);
_hasUIModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_UIModule); _hasUIModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_UIModule);
_hasTextMeshProModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_TextMeshPro); _hasTextMeshProModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_TextMeshPro);
_hasTk2DModule = EditorUtils.HasGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_TK2D); _hasTk2DModule = EditorUtils.HasGlobalDefine(DOTweenSetup.GlobalDefine_TK2D);
} }
// Returns TRUE if it should be closed // Returns TRUE if it should be closed
@ -56,29 +56,32 @@ namespace DG.DOTweenEditor
GUILayout.Space(2); GUILayout.Space(2);
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
if (GUILayout.Button("Apply")) Apply(); if (GUILayout.Button("Apply")) {
Apply();
return true;
}
if (GUILayout.Button("Cancel")) return true; if (GUILayout.Button("Cancel")) return true;
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
EditorGUILayout.HelpBox( // EditorGUILayout.HelpBox(
"NOTE: if you get \"PlayerSettings Validation\" or [CS0618] errors when you press apply don't worry:" + // "NOTE: if you get \"PlayerSettings Validation\" or [CS0618] errors when you press apply don't worry:" +
" it's ok and it allows the setup to work on all possible Unity versions", // " it's ok and it allows the setup to work on all possible Unity versions",
MessageType.Warning // MessageType.Warning
); // );
return false; return false;
} }
static void Apply() static void Apply()
{ {
ModifyDefineIfChanged(_hasAudioModule, DOTweenSetupMenuItem.GlobalDefine_AudioModule); ModifyDefineIfChanged(_hasAudioModule, DOTweenSetup.GlobalDefine_AudioModule);
ModifyDefineIfChanged(_hasPhysicsModule, DOTweenSetupMenuItem.GlobalDefine_PhysicsModule); ModifyDefineIfChanged(_hasPhysicsModule, DOTweenSetup.GlobalDefine_PhysicsModule);
ModifyDefineIfChanged(_hasPhysics2DModule, DOTweenSetupMenuItem.GlobalDefine_Physics2DModule); ModifyDefineIfChanged(_hasPhysics2DModule, DOTweenSetup.GlobalDefine_Physics2DModule);
ModifyDefineIfChanged(_hasSpriteModule, DOTweenSetupMenuItem.GlobalDefine_SpriteModule); ModifyDefineIfChanged(_hasSpriteModule, DOTweenSetup.GlobalDefine_SpriteModule);
ModifyDefineIfChanged(_hasUIModule, DOTweenSetupMenuItem.GlobalDefine_UIModule); ModifyDefineIfChanged(_hasUIModule, DOTweenSetup.GlobalDefine_UIModule);
if (EditorUtils.hasPro) { if (EditorUtils.hasPro) {
ModifyDefineIfChanged(_hasTextMeshProModule, DOTweenSetupMenuItem.GlobalDefine_TextMeshPro); ModifyDefineIfChanged(_hasTextMeshProModule, DOTweenSetup.GlobalDefine_TextMeshPro);
ModifyDefineIfChanged(_hasTk2DModule, DOTweenSetupMenuItem.GlobalDefine_TK2D); ModifyDefineIfChanged(_hasTk2DModule, DOTweenSetup.GlobalDefine_TK2D);
} }
} }

View File

@ -0,0 +1,224 @@
// Author: Daniele Giardini - http://www.demigiant.com
// Created: 2014/09/30 11:59
//
// License Copyright (c) Daniele Giardini.
// This work is subject to the terms at http://dotween.demigiant.com/license.php
using System;
using System.IO;
using DG.DOTweenEditor.Core;
using UnityEditor;
using UnityEngine;
namespace DG.DOTweenEditor
{
/// <summary>
/// Not used as menu item anymore, but as a utiity function
/// </summary>
static class DOTweenSetup
{
// Modules
public const string GlobalDefine_AudioModule = "DOTAUDIO";
public const string GlobalDefine_PhysicsModule = "DOTPHYSICS";
public const string GlobalDefine_Physics2DModule = "DOTPHYSICS2D";
public const string GlobalDefine_SpriteModule = "DOTSPRITE";
public const string GlobalDefine_UIModule = "DOTUI";
// External assets defines
public const string GlobalDefine_TK2D = "DOTWEEN_TK2D";
public const string GlobalDefine_TextMeshPro = "DOTWEEN_TMP";
// Legacy (in versions older than 1.2.000)
public const string GlobalDefine_Legacy_NoRigidbody = "DOTWEEN_NORBODY";
// Removes all DOTween defines including the ones for external assets
public static void RemoveAllDefines()
{
EditorUtils.RemoveGlobalDefine(GlobalDefine_AudioModule);
EditorUtils.RemoveGlobalDefine(GlobalDefine_PhysicsModule);
EditorUtils.RemoveGlobalDefine(GlobalDefine_Physics2DModule);
EditorUtils.RemoveGlobalDefine(GlobalDefine_SpriteModule);
EditorUtils.RemoveGlobalDefine(GlobalDefine_UIModule);
EditorUtils.RemoveGlobalDefine(GlobalDefine_Legacy_NoRigidbody);
EditorUtils.RemoveGlobalDefine(GlobalDefine_TK2D);
EditorUtils.RemoveGlobalDefine(GlobalDefine_TextMeshPro);
}
// Adds all Unity Modules defines but not the ones for external assets
public static void AddAllUnityDefines()
{
EditorUtils.AddGlobalDefine(GlobalDefine_AudioModule);
EditorUtils.AddGlobalDefine(GlobalDefine_PhysicsModule);
EditorUtils.AddGlobalDefine(GlobalDefine_Physics2DModule);
EditorUtils.AddGlobalDefine(GlobalDefine_SpriteModule);
EditorUtils.AddGlobalDefine(GlobalDefine_UIModule);
}
// // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
// // ███ LEGACY (before Modules) █████████████████████████████████████████████████████████████████████████████████████████
//
// const string _Title = "DOTween Setup";
//
// /// <summary>
// /// Setups DOTween
// /// </summary>
// /// <param name="partiallySilent">If TRUE, no warning window appears in case there is no need for setup</param>
// public static void Setup(bool partiallySilent = false)
// {
// bool setupRequired = EditorUtils.DOTweenSetupRequired();
// if (setupRequired) {
// string msg = "Based on your Unity version (" + Application.unityVersion + ") and eventual plugins, DOTween will now activate additional tween elements, if available.";
// if (!EditorUtility.DisplayDialog(_Title, msg, "Ok", "Cancel")) return;
// } else {
// if (!partiallySilent) {
// string msg = "This project has already been setup for your version of DOTween.\nReimport DOTween if you added new compatible external assets or upgraded your Unity version.";
// if (!EditorUtility.DisplayDialog(_Title, msg, "Force Setup", "Cancel")) return;
// } else return;
// }
//
// string addonsDir = EditorUtils.dotweenDir;
// string proAddonsDir = EditorUtils.dotweenProDir;
//
// EditorUtility.DisplayProgressBar(_Title, "Please wait...", 0.25f);
//
// int totImported = 0;
// // Unity version-based files
// string[] vs = Application.unityVersion.Split("."[0]);
// int majorVersion = Convert.ToInt32(vs[0]);
// int minorVersion = Convert.ToInt32(vs[1]);
// if (majorVersion < 4) {
// SetupComplete(addonsDir, proAddonsDir, totImported);
// return;
// }
// if (majorVersion == 4) {
// if (minorVersion < 3) {
// SetupComplete(addonsDir, proAddonsDir, totImported);
// return;
// }
// totImported += ImportAddons("43", addonsDir);
// if (minorVersion >= 6) totImported += ImportAddons("46", addonsDir);
// } else {
// // 5.x
// totImported += ImportAddons("43", addonsDir);
// totImported += ImportAddons("46", addonsDir);
// totImported += ImportAddons("50", addonsDir);
// }
// // Additional plugin files
// // Pro plugins
// if (EditorUtils.hasPro) {
// // PRO > 2DToolkit shortcuts
// if (Has2DToolkit()) {
// totImported += ImportAddons("Tk2d", proAddonsDir);
// EditorUtils.AddGlobalDefine(GlobalDefine_TK2D);
// } else EditorUtils.RemoveGlobalDefine(GlobalDefine_TK2D);
// // PRO > TextMeshPro shortcuts
// if (HasTextMeshPro()) {
// totImported += ImportAddons("TextMeshPro", proAddonsDir);
// EditorUtils.AddGlobalDefine(GlobalDefine_TextMeshPro);
// } else EditorUtils.RemoveGlobalDefine(GlobalDefine_TextMeshPro);
// }
//
// SetupComplete(addonsDir, proAddonsDir, totImported);
// }
//
// static void SetupComplete(string addonsDir, string proAddonsDir, int totImported)
// {
// int totRemoved = 0;
//
// // Delete all remaining addon files
// string[] leftoverAddonFiles = Directory.GetFiles(addonsDir, "*.addon");
// if (leftoverAddonFiles.Length > 0) {
// EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional files...", 0.5f);
// foreach (string leftoverAddonFile in leftoverAddonFiles) {
// totRemoved++;
// File.Delete(leftoverAddonFile);
// }
// }
// if (EditorUtils.hasPro) {
// leftoverAddonFiles = Directory.GetFiles(proAddonsDir, "*.addon");
// if (leftoverAddonFiles.Length > 0) {
// EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional files...", 0.5f);
// foreach (string leftoverAddonFile in leftoverAddonFiles) {
// totRemoved++;
// File.Delete(leftoverAddonFile);
// }
// }
// }
// // Delete all remaining addon meta files
// leftoverAddonFiles = Directory.GetFiles(addonsDir, "*.addon.meta");
// if (leftoverAddonFiles.Length > 0) {
// EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional meta files...", 0.75f);
// foreach (string leftoverAddonFile in leftoverAddonFiles) {
// File.Delete(leftoverAddonFile);
// }
// }
// if (EditorUtils.hasPro) {
// leftoverAddonFiles = Directory.GetFiles(proAddonsDir, "*.addon.meta");
// if (leftoverAddonFiles.Length > 0) {
// EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional meta files...", 0.75f);
// foreach (string leftoverAddonFile in leftoverAddonFiles) {
// File.Delete(leftoverAddonFile);
// }
// }
// }
//
// EditorUtility.DisplayProgressBar(_Title, "Refreshing...", 0.9f);
// AssetDatabase.Refresh();
//
// EditorUtility.ClearProgressBar();
// EditorUtility.DisplayDialog(_Title, "DOTween setup is now complete." +
// (totImported == 0 ? "" : "\n" + totImported + " additional libraries were imported or updated.") +
// (totRemoved == 0 ? "" : "\n" + totRemoved + " extra files were removed."),
// "Ok"
// );
// }
//
// // Removes relative .addon extension thus activating files
// static int ImportAddons(string version, string addonsDir)
// {
// bool imported = false;
// string[] filenames = new[] {
// "DOTween" + version + ".dll",
// "DOTween" + version + ".xml",
// "DOTween" + version + ".dll.mdb",
// "DOTween" + version + ".cs"
// };
//
// foreach (string filename in filenames) {
// string addonFilepath = addonsDir + filename + ".addon";
// string finalFilepath = addonsDir + filename;
// if (File.Exists(addonFilepath)) {
// // Delete eventual existing final file
// if (File.Exists(finalFilepath)) File.Delete(finalFilepath);
// // Rename addon file to final
// File.Move(addonFilepath, finalFilepath);
// imported = true;
// }
// }
//
// return imported ? 1 : 0;
// }
//
// static bool Has2DToolkit()
// {
// string[] rootDirs = Directory.GetDirectories(EditorUtils.projectPath, "TK2DROOT", SearchOption.AllDirectories);
// if (rootDirs.Length == 0) return false;
// foreach (string rootDir in rootDirs) {
// if (Directory.GetFiles(rootDir, "tk2dSprite.cs", SearchOption.AllDirectories).Length > 0) return true;
// }
// return false;
// }
// static bool HasTextMeshPro()
// {
// string[] rootDirs = Directory.GetDirectories(EditorUtils.projectPath, "TextMesh Pro", SearchOption.AllDirectories);
// if (rootDirs.Length == 0) return false;
// foreach (string rootDir in rootDirs) {
// if (Directory.GetFiles(rootDir, "TextMeshPro.cs", SearchOption.AllDirectories).Length > 0) return true; // Old payed version
// if (Directory.GetFiles(rootDir, "TextMeshPro*.dll", SearchOption.AllDirectories).Length > 0) return true; // New free version
// }
// return false;
// }
}
}

View File

@ -1,195 +0,0 @@
// Author: Daniele Giardini - http://www.demigiant.com
// Created: 2014/09/30 11:59
//
// License Copyright (c) Daniele Giardini.
// This work is subject to the terms at http://dotween.demigiant.com/license.php
using System;
using System.IO;
using DG.DOTweenEditor.Core;
using UnityEditor;
using UnityEngine;
namespace DG.DOTweenEditor
{
/// <summary>
/// Not used as menu item anymore, but as a utiity function
/// </summary>
static class DOTweenSetupMenuItem
{
// TODO Remove old defines and add new ones
// Modules
public const string GlobalDefine_AudioModule = "DOTAUDIO";
public const string GlobalDefine_PhysicsModule = "DOTPHYSICS";
public const string GlobalDefine_Physics2DModule = "DOTPHYSICS2D";
public const string GlobalDefine_SpriteModule = "DOTSPRITE";
public const string GlobalDefine_UIModule = "DOTUI";
// External assets defines
public const string GlobalDefine_TK2D = "DOTWEEN_TK2D";
public const string GlobalDefine_TextMeshPro = "DOTWEEN_TMP";
// Legacy (in versions older than 1.2.000)
public const string GlobalDefine_Legacy_NoRigidbody = "DOTWEEN_NORBODY";
const string _Title = "DOTween Setup";
/// <summary>
/// Setups DOTween
/// </summary>
/// <param name="partiallySilent">If TRUE, no warning window appears in case there is no need for setup</param>
public static void Setup(bool partiallySilent = false)
{
bool setupRequired = EditorUtils.DOTweenSetupRequired();
if (setupRequired) {
string msg = "Based on your Unity version (" + Application.unityVersion + ") and eventual plugins, DOTween will now activate additional tween elements, if available.";
if (!EditorUtility.DisplayDialog(_Title, msg, "Ok", "Cancel")) return;
} else {
if (!partiallySilent) {
string msg = "This project has already been setup for your version of DOTween.\nReimport DOTween if you added new compatible external assets or upgraded your Unity version.";
if (!EditorUtility.DisplayDialog(_Title, msg, "Force Setup", "Cancel")) return;
} else return;
}
string addonsDir = EditorUtils.dotweenDir;
string proAddonsDir = EditorUtils.dotweenProDir;
EditorUtility.DisplayProgressBar(_Title, "Please wait...", 0.25f);
int totImported = 0;
// Unity version-based files
string[] vs = Application.unityVersion.Split("."[0]);
int majorVersion = Convert.ToInt32(vs[0]);
int minorVersion = Convert.ToInt32(vs[1]);
if (majorVersion < 4) {
SetupComplete(addonsDir, proAddonsDir, totImported);
return;
}
if (majorVersion == 4) {
if (minorVersion < 3) {
SetupComplete(addonsDir, proAddonsDir, totImported);
return;
}
totImported += ImportAddons("43", addonsDir);
if (minorVersion >= 6) totImported += ImportAddons("46", addonsDir);
} else {
// 5.x
totImported += ImportAddons("43", addonsDir);
totImported += ImportAddons("46", addonsDir);
totImported += ImportAddons("50", addonsDir);
}
// Additional plugin files
// Pro plugins
if (EditorUtils.hasPro) {
// PRO > 2DToolkit shortcuts
if (Has2DToolkit()) {
totImported += ImportAddons("Tk2d", proAddonsDir);
EditorUtils.AddGlobalDefine(GlobalDefine_TK2D);
} else EditorUtils.RemoveGlobalDefine(GlobalDefine_TK2D);
// PRO > TextMeshPro shortcuts
if (HasTextMeshPro()) {
totImported += ImportAddons("TextMeshPro", proAddonsDir);
EditorUtils.AddGlobalDefine(GlobalDefine_TextMeshPro);
} else EditorUtils.RemoveGlobalDefine(GlobalDefine_TextMeshPro);
}
SetupComplete(addonsDir, proAddonsDir, totImported);
}
static void SetupComplete(string addonsDir, string proAddonsDir, int totImported)
{
int totRemoved = 0;
// Delete all remaining addon files
string[] leftoverAddonFiles = Directory.GetFiles(addonsDir, "*.addon");
if (leftoverAddonFiles.Length > 0) {
EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional files...", 0.5f);
foreach (string leftoverAddonFile in leftoverAddonFiles) {
totRemoved++;
File.Delete(leftoverAddonFile);
}
}
if (EditorUtils.hasPro) {
leftoverAddonFiles = Directory.GetFiles(proAddonsDir, "*.addon");
if (leftoverAddonFiles.Length > 0) {
EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional files...", 0.5f);
foreach (string leftoverAddonFile in leftoverAddonFiles) {
totRemoved++;
File.Delete(leftoverAddonFile);
}
}
}
// Delete all remaining addon meta files
leftoverAddonFiles = Directory.GetFiles(addonsDir, "*.addon.meta");
if (leftoverAddonFiles.Length > 0) {
EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional meta files...", 0.75f);
foreach (string leftoverAddonFile in leftoverAddonFiles) {
File.Delete(leftoverAddonFile);
}
}
if (EditorUtils.hasPro) {
leftoverAddonFiles = Directory.GetFiles(proAddonsDir, "*.addon.meta");
if (leftoverAddonFiles.Length > 0) {
EditorUtility.DisplayProgressBar(_Title, "Removing " + leftoverAddonFiles.Length + " unused additional meta files...", 0.75f);
foreach (string leftoverAddonFile in leftoverAddonFiles) {
File.Delete(leftoverAddonFile);
}
}
}
EditorUtility.DisplayProgressBar(_Title, "Refreshing...", 0.9f);
AssetDatabase.Refresh();
EditorUtility.ClearProgressBar();
EditorUtility.DisplayDialog(_Title, "DOTween setup is now complete." +
(totImported == 0 ? "" : "\n" + totImported + " additional libraries were imported or updated.") +
(totRemoved == 0 ? "" : "\n" + totRemoved + " extra files were removed."),
"Ok"
);
}
// Removes relative .addon extension thus activating files
static int ImportAddons(string version, string addonsDir)
{
bool imported = false;
string[] filenames = new[] {
"DOTween" + version + ".dll",
"DOTween" + version + ".xml",
"DOTween" + version + ".dll.mdb",
"DOTween" + version + ".cs"
};
foreach (string filename in filenames) {
string addonFilepath = addonsDir + filename + ".addon";
string finalFilepath = addonsDir + filename;
if (File.Exists(addonFilepath)) {
// Delete eventual existing final file
if (File.Exists(finalFilepath)) File.Delete(finalFilepath);
// Rename addon file to final
File.Move(addonFilepath, finalFilepath);
imported = true;
}
}
return imported ? 1 : 0;
}
static bool Has2DToolkit()
{
string[] rootDirs = Directory.GetDirectories(EditorUtils.projectPath, "TK2DROOT", SearchOption.AllDirectories);
if (rootDirs.Length == 0) return false;
foreach (string rootDir in rootDirs) {
if (Directory.GetFiles(rootDir, "tk2dSprite.cs", SearchOption.AllDirectories).Length > 0) return true;
}
return false;
}
static bool HasTextMeshPro()
{
string[] rootDirs = Directory.GetDirectories(EditorUtils.projectPath, "TextMesh Pro", SearchOption.AllDirectories);
if (rootDirs.Length == 0) return false;
foreach (string rootDir in rootDirs) {
if (Directory.GetFiles(rootDir, "TextMeshPro.cs", SearchOption.AllDirectories).Length > 0) return true; // Old payed version
if (Directory.GetFiles(rootDir, "TextMeshPro*.dll", SearchOption.AllDirectories).Length > 0) return true; // New free version
}
return false;
}
}
}

View File

@ -30,20 +30,19 @@ namespace DG.DOTweenEditor
break; break;
} }
if (!containsDOTween) return AssetDeleteResult.DidNotDelete; if (!containsDOTween) return AssetDeleteResult.DidNotDelete;
// DOTween found: remove scripting define symbols // DOTween is being deleted: deal with it
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_AudioModule);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_PhysicsModule);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_Physics2DModule);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_SpriteModule);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_UIModule);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_TK2D);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_TextMeshPro);
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_Legacy_NoRigidbody);
// Remove EditorPrefs // Remove EditorPrefs
EditorPrefs.DeleteKey(Application.dataPath + DOTweenUtilityWindow.Id); EditorPrefs.DeleteKey(Application.dataPath + DOTweenUtilityWindow.Id);
EditorPrefs.DeleteKey(Application.dataPath + DOTweenUtilityWindow.IdPro); EditorPrefs.DeleteKey(Application.dataPath + DOTweenUtilityWindow.IdPro);
// Remove scripting define symbols
DOTweenSetup.RemoveAllDefines();
// //
EditorUtility.DisplayDialog("DOTween Deleted", "DOTween was deleted and all of its scripting define symbols removed.\nThis might show an error depending on your previous setup. If this happens, please close and reopen Unity or reimport DOTween.", "Ok"); EditorUtility.DisplayDialog("DOTween Deleted",
"DOTween was deleted and all of its scripting define symbols removed." +
"\n\nThis might show an error depending on your previous setup." +
" If this happens, please close and reopen Unity or reimport DOTween.",
"Ok"
);
return AssetDeleteResult.DidNotDelete; return AssetDeleteResult.DidNotDelete;
} }
} }
@ -64,22 +63,30 @@ namespace DG.DOTweenEditor
// Delete old DemiLib configuration // Delete old DemiLib configuration
EditorUtils.DeleteOldDemiLibCore(); EditorUtils.DeleteOldDemiLibCore();
// Remove old NoRigidbody define // Remove old NoRigidbody define
EditorUtils.RemoveGlobalDefine(DOTweenSetupMenuItem.GlobalDefine_Legacy_NoRigidbody); EditorUtils.RemoveGlobalDefine(DOTweenSetup.GlobalDefine_Legacy_NoRigidbody);
// //
bool openSetupDialog = EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.Id) != Application.dataPath + DOTween.Version bool differentCoreVersion = EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.Id) != Application.dataPath + DOTween.Version;
|| EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.IdPro) != Application.dataPath + EditorUtils.proVersion; bool differentProVersion = EditorUtils.hasPro && EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.IdPro) != Application.dataPath + EditorUtils.proVersion;
if (openSetupDialog) { bool setupRequired = differentCoreVersion || differentProVersion;
Debug.Log("Should open setup dialogue"); if (setupRequired) {
_setupDialogRequested = true; _setupDialogRequested = true;
EditorPrefs.SetString(Application.dataPath + DOTweenUtilityWindow.Id, Application.dataPath + DOTween.Version); EditorPrefs.SetString(Application.dataPath + DOTweenUtilityWindow.Id, Application.dataPath + DOTween.Version);
EditorPrefs.SetString(Application.dataPath + DOTweenUtilityWindow.IdPro, Application.dataPath + EditorUtils.proVersion); if (EditorUtils.hasPro) EditorPrefs.SetString(Application.dataPath + DOTweenUtilityWindow.IdPro, Application.dataPath + EditorUtils.proVersion);
EditorUtility.DisplayDialog("DOTween", "New version of DOTween imported.\n\nSelect \"Tools > Demigiant > DOTween Utility Panel\" and press \"Setup DOTween...\" in the window that opens to set it up.", "Ok"); // DOTweenSetup.AddAllUnityDefines();
// EditorUtility.DisplayDialog("DOTween", "New version of DOTween imported.\n\nUse the Setup Panel to add/remove its Modules.", "Ok"); EditorUtility.DisplayDialog("DOTween",
differentCoreVersion
? "New version of DOTween imported." +
"\n\nSelect \"Setup DOTween...\" in DOTween's Utility Panel to add/remove Modules."
: "New version of DOTween Pro imported." +
" \n\nSelect \"Setup DOTween...\" in DOTween's Utility Panel to add/remove external Modules (TextMesh Pro/2DToolkit/etc).",
"Ok"
);
DOTweenUtilityWindow.Open();
// Opening window after a postProcess doesn't work on Unity 3 so check that // Opening window after a postProcess doesn't work on Unity 3 so check that
string[] vs = Application.unityVersion.Split("."[0]); // string[] vs = Application.unityVersion.Split("."[0]);
int majorVersion = System.Convert.ToInt32(vs[0]); // int majorVersion = System.Convert.ToInt32(vs[0]);
if (majorVersion >= 4) EditorUtils.DelayedCall(0.5f, DOTweenUtilityWindow.Open); // if (majorVersion >= 4) EditorUtils.DelayedCall(0.5f, DOTweenUtilityWindow.Open);
EditorUtils.DelayedCall(8, ()=> _setupDialogRequested = false); // EditorUtils.DelayedCall(8, ()=> _setupDialogRequested = false);
} }
} }
} }
@ -96,6 +103,7 @@ namespace DG.DOTweenEditor
public const string IdPro = "DOTweenProVersion"; public const string IdPro = "DOTweenProVersion";
static readonly float _HalfBtSize = _WinSize.x * 0.5f - 6; static readonly float _HalfBtSize = _WinSize.x * 0.5f - 6;
bool _initialized;
DOTweenSettings _src; DOTweenSettings _src;
Texture2D _headerImg, _footerImg; Texture2D _headerImg, _footerImg;
Vector2 _headerSize, _footerSize; Vector2 _headerSize, _footerSize;
@ -119,6 +127,26 @@ namespace DG.DOTweenEditor
EditorPrefs.SetString(IdPro, EditorUtils.proVersion); EditorPrefs.SetString(IdPro, EditorUtils.proVersion);
} }
// Returns TRUE if DOTween is initialized
bool Init()
{
if (_initialized) return true;
if (_headerImg == null) {
_headerImg = AssetDatabase.LoadAssetAtPath("Assets/" + EditorUtils.editorADBDir + "Imgs/Header.jpg", typeof(Texture2D)) as Texture2D;
if (_headerImg == null) return false; // DOTween imported for the first time and images not yet imported
EditorUtils.SetEditorTexture(_headerImg, FilterMode.Bilinear, 512);
_headerSize.x = _WinSize.x;
_headerSize.y = (int)((_WinSize.x * _headerImg.height) / _headerImg.width);
_footerImg = AssetDatabase.LoadAssetAtPath("Assets/" + EditorUtils.editorADBDir + (EditorGUIUtility.isProSkin ? "Imgs/Footer.png" : "Imgs/Footer_dark.png"), typeof(Texture2D)) as Texture2D;
EditorUtils.SetEditorTexture(_footerImg, FilterMode.Bilinear, 256);
_footerSize.x = _WinSize.x;
_footerSize.y = (int)((_WinSize.x * _footerImg.height) / _footerImg.width);
}
_initialized = true;
return true;
}
// =================================================================================== // ===================================================================================
// UNITY METHODS --------------------------------------------------------------------- // UNITY METHODS ---------------------------------------------------------------------
@ -135,16 +163,7 @@ namespace DG.DOTweenEditor
if (EditorUtils.hasPro) _innerTitle += "\nDOTweenPro v" + EditorUtils.proVersion; if (EditorUtils.hasPro) _innerTitle += "\nDOTweenPro v" + EditorUtils.proVersion;
else _innerTitle += "\nDOTweenPro not installed"; else _innerTitle += "\nDOTweenPro not installed";
if (_headerImg == null) { Init();
_headerImg = AssetDatabase.LoadAssetAtPath("Assets/" + EditorUtils.editorADBDir + "Imgs/Header.jpg", typeof(Texture2D)) as Texture2D;
EditorUtils.SetEditorTexture(_headerImg, FilterMode.Bilinear, 512);
_headerSize.x = _WinSize.x;
_headerSize.y = (int)((_WinSize.x * _headerImg.height) / _headerImg.width);
_footerImg = AssetDatabase.LoadAssetAtPath("Assets/" + EditorUtils.editorADBDir + (EditorGUIUtility.isProSkin ? "Imgs/Footer.png" : "Imgs/Footer_dark.png"), typeof(Texture2D)) as Texture2D;
EditorUtils.SetEditorTexture(_footerImg, FilterMode.Bilinear, 256);
_footerSize.x = _WinSize.x;
_footerSize.y = (int)((_WinSize.x * _footerImg.height) / _footerImg.width);
}
_setupRequired = EditorUtils.DOTweenSetupRequired(); _setupRequired = EditorUtils.DOTweenSetupRequired();
} }
@ -156,6 +175,11 @@ namespace DG.DOTweenEditor
void OnGUI() void OnGUI()
{ {
if (!Init()) {
GUILayout.Space(8);
GUILayout.Label("Completing import process...");
return;
}
Connect(); Connect();
EditorGUIUtils.SetGUIStyles(_footerSize); EditorGUIUtils.SetGUIStyles(_footerSize);
@ -202,12 +226,19 @@ namespace DG.DOTweenEditor
GUILayout.EndVertical(); GUILayout.EndVertical();
GUI.backgroundColor = Color.white; GUI.backgroundColor = Color.white;
} else GUILayout.Space(8); } else GUILayout.Space(8);
if (GUILayout.Button("Setup DOTween...", EditorGUIUtils.btStyle)) { GUI.color = Color.green;
// DOTweenSetupMenuItem.Setup(); GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if (GUILayout.Button("<b>Setup DOTween...</b>\n(add/remove Modules)", EditorGUIUtils.btSetup)) {
// DOTweenSetup.Setup();
// _setupRequired = EditorUtils.DOTweenSetupRequired(); // _setupRequired = EditorUtils.DOTweenSetupRequired();
DOTweenModulesSetupGUI.Refresh(); DOTweenModulesSetupGUI.Refresh();
_isModulesMode = true; _isModulesMode = true;
} }
GUILayout.FlexibleSpace();
GUI.color = Color.white;
GUILayout.EndHorizontal();
GUILayout.Space(8);
// EditorGUILayout.HelpBox( // EditorGUILayout.HelpBox(
// "NOTE: if you get \"Requested build target group (N) doesn't exist\" or [CS0618] errors during the setup don't worry: it's ok and allows the setup to work on all possible Unity versions", // "NOTE: if you get \"Requested build target group (N) doesn't exist\" or [CS0618] errors during the setup don't worry: it's ok and allows the setup to work on all possible Unity versions",
@ -215,12 +246,16 @@ namespace DG.DOTweenEditor
// ); // );
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
if (GUILayout.Button("Documentation", EditorGUIUtils.btStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/documentation.php"); if (GUILayout.Button("Website", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/index.php");
if (GUILayout.Button("Support", EditorGUIUtils.btStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/support.php"); if (GUILayout.Button("Get Started", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/getstarted.php");
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
if (GUILayout.Button("Changelog", EditorGUIUtils.btStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/download.php"); if (GUILayout.Button("Documentation", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/documentation.php");
if (GUILayout.Button("Check Updates", EditorGUIUtils.btStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/download.php?v=" + DOTween.Version); if (GUILayout.Button("Support", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/support.php");
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
if (GUILayout.Button("Changelog", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/download.php");
if (GUILayout.Button("Check Updates", EditorGUIUtils.btBigStyle, GUILayout.Width(_HalfBtSize))) Application.OpenURL("http://dotween.demigiant.com/download.php?v=" + DOTween.Version);
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
GUILayout.Space(14); GUILayout.Space(14);
if (GUILayout.Button(_footerImg, EditorGUIUtils.btImgStyle)) Application.OpenURL("http://www.demigiant.com/"); if (GUILayout.Button(_footerImg, EditorGUIUtils.btImgStyle)) Application.OpenURL("http://www.demigiant.com/");
@ -229,7 +264,7 @@ namespace DG.DOTweenEditor
void DrawPreferencesGUI() void DrawPreferencesGUI()
{ {
GUILayout.Space(40); GUILayout.Space(40);
if (GUILayout.Button("Reset", EditorGUIUtils.btStyle)) { if (GUILayout.Button("Reset", EditorGUIUtils.btBigStyle)) {
// Reset to original defaults // Reset to original defaults
_src.useSafeMode = true; _src.useSafeMode = true;
_src.showUnityEditorReport = false; _src.showUnityEditorReport = false;

Binary file not shown.

View File

@ -1,85 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DOTween43</name>
</assembly>
<members>
<member name="T:DG.Tweening.ShortcutExtensions43">
<summary>
Methods that extend known Unity objects and allow to directly create and control tweens from their instances.
These, as all DOTween43 methods, require Unity 4.3 or later.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOGradientColor(UnityEngine.Material,UnityEngine.Gradient,System.Single)">
<summary>Tweens a Material's color using the given gradient
(NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOGradientColor(UnityEngine.Material,UnityEngine.Gradient,System.String,System.Single)">
<summary>Tweens a Material's named color property using the given gradient
(NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="gradient">The gradient to use</param>
<param name="property">The name of the material property to tween (like _Tint or _SpecColor)</param>
<param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOColor(UnityEngine.SpriteRenderer,UnityEngine.Color,System.Single)">
<summary>Tweens a SpriteRenderer's color to the given value.
Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOFade(UnityEngine.SpriteRenderer,System.Single,System.Single)">
<summary>Tweens a Material's alpha color to the given value.
Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOGradientColor(UnityEngine.SpriteRenderer,UnityEngine.Gradient,System.Single)">
<summary>Tweens a SpriteRenderer's color using the given gradient
(NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOMove(UnityEngine.Rigidbody2D,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a Rigidbody2D's position to the given value.
Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOMoveX(UnityEngine.Rigidbody2D,System.Single,System.Single,System.Boolean)">
<summary>Tweens a Rigidbody2D's X position to the given value.
Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOMoveY(UnityEngine.Rigidbody2D,System.Single,System.Single,System.Boolean)">
<summary>Tweens a Rigidbody2D's Y position to the given value.
Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DORotate(UnityEngine.Rigidbody2D,System.Single,System.Single)">
<summary>Tweens a Rigidbody2D's rotation to the given value.
Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOJump(UnityEngine.Rigidbody2D,UnityEngine.Vector2,System.Single,System.Int32,System.Single,System.Boolean)">
<summary>Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
Returns a Sequence instead of a Tweener.
Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
<para>IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position</para></summary>
<param name="endValue">The end value to reach</param>
<param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
<param name="numJumps">Total number of jumps</param>
<param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions43.DOBlendableColor(UnityEngine.SpriteRenderer,UnityEngine.Color,System.Single)">
<summary>Tweens a SpriteRenderer's color to the given value,
in a way that allows other DOBlendableColor tweens to work together on the same target,
instead than fight each other as multiple DOColor would do.
Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
</member>
</members>
</doc>

Binary file not shown.

View File

@ -1,279 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DOTween46</name>
</assembly>
<members>
<member name="T:DG.Tweening.DOTweenUtils46">
<summary>
Various utils that require Unity 4.6 or later
</summary>
</member>
<member name="M:DG.Tweening.DOTweenUtils46.SwitchToRectTransform(UnityEngine.RectTransform,UnityEngine.RectTransform)">
<summary>
Converts the anchoredPosition of the first RectTransform to the second RectTransform,
taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
</summary>
</member>
<member name="T:DG.Tweening.ShortcutExtensions46">
<summary>
Methods that extend known Unity objects and allow to directly create and control tweens from their instances.
These, as all DOTween46 methods, require Unity 4.6 or later.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFade(UnityEngine.CanvasGroup,System.Single,System.Single)">
<summary>Tweens a CanvasGroup's alpha color to the given value.
Also stores the canvasGroup as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOColor(UnityEngine.UI.Graphic,UnityEngine.Color,System.Single)">
<summary>Tweens an Graphic's color to the given value.
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFade(UnityEngine.UI.Graphic,System.Single,System.Single)">
<summary>Tweens an Graphic's alpha color to the given value.
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOColor(UnityEngine.UI.Image,UnityEngine.Color,System.Single)">
<summary>Tweens an Image's color to the given value.
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFade(UnityEngine.UI.Image,System.Single,System.Single)">
<summary>Tweens an Image's alpha color to the given value.
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFillAmount(UnityEngine.UI.Image,System.Single,System.Single)">
<summary>Tweens an Image's fillAmount to the given value.
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOGradientColor(UnityEngine.UI.Image,UnityEngine.Gradient,System.Single)">
<summary>Tweens an Image's colors using the given gradient
(NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
Also stores the image as the tween's target so it can be used for filtered operations</summary>
<param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFlexibleSize(UnityEngine.UI.LayoutElement,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens an LayoutElement's flexibleWidth/Height to the given value.
Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOMinSize(UnityEngine.UI.LayoutElement,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens an LayoutElement's minWidth/Height to the given value.
Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOPreferredSize(UnityEngine.UI.LayoutElement,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens an LayoutElement's preferredWidth/Height to the given value.
Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOColor(UnityEngine.UI.Outline,UnityEngine.Color,System.Single)">
<summary>Tweens a Outline's effectColor to the given value.
Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFade(UnityEngine.UI.Outline,System.Single,System.Single)">
<summary>Tweens a Outline's effectColor alpha to the given value.
Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOScale(UnityEngine.UI.Outline,UnityEngine.Vector2,System.Single)">
<summary>Tweens a Outline's effectDistance to the given value.
Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPos(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPosX(UnityEngine.RectTransform,System.Single,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition X to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPosY(UnityEngine.RectTransform,System.Single,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition Y to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPos3D(UnityEngine.RectTransform,UnityEngine.Vector3,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition3D to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPos3DX(UnityEngine.RectTransform,System.Single,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition3D X to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPos3DY(UnityEngine.RectTransform,System.Single,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition3D Y to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorPos3DZ(UnityEngine.RectTransform,System.Single,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition3D Z to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorMax(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchorMax to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOAnchorMin(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchorMin to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOPivot(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single)">
<summary>Tweens a RectTransform's pivot to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOPivotX(UnityEngine.RectTransform,System.Single,System.Single)">
<summary>Tweens a RectTransform's pivot X to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOPivotY(UnityEngine.RectTransform,System.Single,System.Single)">
<summary>Tweens a RectTransform's pivot Y to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOSizeDelta(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's sizeDelta to the given value.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOPunchAnchorPos(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Int32,System.Single,System.Boolean)">
<summary>Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one
as if it was connected to the starting position via an elastic.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="punch">The direction and strength of the punch (added to the RectTransform's current position)</param>
<param name="duration">The duration of the tween</param>
<param name="vibrato">Indicates how much will the punch vibrate</param>
<param name="elasticity">Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
1 creates a full oscillation between the punch direction and the opposite direction,
while 0 oscillates only between the punch and the start position</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOShakeAnchorPos(UnityEngine.RectTransform,System.Single,System.Single,System.Int32,System.Single,System.Boolean,System.Boolean)">
<summary>Shakes a RectTransform's anchoredPosition with the given values.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="duration">The duration of the tween</param>
<param name="strength">The shake strength</param>
<param name="vibrato">Indicates how much will the shake vibrate</param>
<param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
Setting it to 0 will shake along a single direction.</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
<param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOShakeAnchorPos(UnityEngine.RectTransform,System.Single,UnityEngine.Vector2,System.Int32,System.Single,System.Boolean,System.Boolean)">
<summary>Shakes a RectTransform's anchoredPosition with the given values.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="duration">The duration of the tween</param>
<param name="strength">The shake strength on each axis</param>
<param name="vibrato">Indicates how much will the shake vibrate</param>
<param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
Setting it to 0 will shake along a single direction.</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
<param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOJumpAnchorPos(UnityEngine.RectTransform,UnityEngine.Vector2,System.Single,System.Int32,System.Single,System.Boolean)">
<summary>Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
Returns a Sequence instead of a Tweener.
Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param>
<param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
<param name="numJumps">Total number of jumps</param>
<param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DONormalizedPos(UnityEngine.UI.ScrollRect,UnityEngine.Vector2,System.Single,System.Boolean)">
<summary>Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value.
Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOHorizontalNormalizedPos(UnityEngine.UI.ScrollRect,System.Single,System.Single,System.Boolean)">
<summary>Tweens a ScrollRect's horizontalNormalizedPosition to the given value.
Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOVerticalNormalizedPos(UnityEngine.UI.ScrollRect,System.Single,System.Single,System.Boolean)">
<summary>Tweens a ScrollRect's verticalNormalizedPosition to the given value.
Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOValue(UnityEngine.UI.Slider,System.Single,System.Single,System.Boolean)">
<summary>Tweens a Slider's value to the given value.
Also stores the Slider as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
<param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOColor(UnityEngine.UI.Text,UnityEngine.Color,System.Single)">
<summary>Tweens a Text's color to the given value.
Also stores the Text as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOFade(UnityEngine.UI.Text,System.Single,System.Single)">
<summary>Tweens a Text's alpha color to the given value.
Also stores the Text as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOText(UnityEngine.UI.Text,System.String,System.Single,System.Boolean,DG.Tweening.ScrambleMode,System.String)">
<summary>Tweens a Text's text to the given value.
Also stores the Text as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The end string to tween to</param><param name="duration">The duration of the tween</param>
<param name="richTextEnabled">If TRUE (default), rich text will be interpreted correctly while animated,
otherwise all tags will be considered as normal text</param>
<param name="scrambleMode">The type of scramble mode to use, if any</param>
<param name="scrambleChars">A string containing the characters to use for scrambling.
Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
Leave it to NULL (default) to use default ones</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOBlendableColor(UnityEngine.UI.Graphic,UnityEngine.Color,System.Single)">
<summary>Tweens a Graphic's color to the given value,
in a way that allows other DOBlendableColor tweens to work together on the same target,
instead than fight each other as multiple DOColor would do.
Also stores the Graphic as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOBlendableColor(UnityEngine.UI.Image,UnityEngine.Color,System.Single)">
<summary>Tweens a Image's color to the given value,
in a way that allows other DOBlendableColor tweens to work together on the same target,
instead than fight each other as multiple DOColor would do.
Also stores the Image as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions46.DOBlendableColor(UnityEngine.UI.Text,UnityEngine.Color,System.Single)">
<summary>Tweens a Text's color BY the given value,
in a way that allows other DOBlendableColor tweens to work together on the same target,
instead than fight each other as multiple DOColor would do.
Also stores the Text as the tween's target so it can be used for filtered operations</summary>
<param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
</member>
</members>
</doc>

Binary file not shown.

View File

@ -1,163 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DOTween50</name>
</assembly>
<members>
<member name="T:DG.Tweening.ShortcutExtensions50">
<summary>
Methods that extend known Unity objects and allow to directly create and control tweens from their instances.
These, as all DOTween50 methods, require Unity 5.0 or later.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOSetFloat(UnityEngine.Audio.AudioMixer,System.String,System.Single,System.Single)">
<summary>Tweens an AudioMixer's exposed float to the given value.
Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.</summary>
<param name="floatName">Name given to the exposed float to set</param>
<param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOComplete(UnityEngine.Audio.AudioMixer,System.Boolean)">
<summary>
Completes all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens completed
(meaning the tweens that don't have infinite loops and were not already complete)
</summary>
<param name="withCallbacks">For Sequences only: if TRUE also internal Sequence callbacks will be fired,
otherwise they will be ignored</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOKill(UnityEngine.Audio.AudioMixer,System.Boolean)">
<summary>
Kills all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens killed.
</summary>
<param name="complete">If TRUE completes the tween before killing it</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOFlip(UnityEngine.Audio.AudioMixer)">
<summary>
Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens flipped.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOGoto(UnityEngine.Audio.AudioMixer,System.Single,System.Boolean)">
<summary>
Sends to the given position all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens involved.
</summary>
<param name="to">Time position to reach
(if higher than the whole tween duration the tween will simply reach its end)</param>
<param name="andPlay">If TRUE will play the tween after reaching the given position, otherwise it will pause it</param>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOPause(UnityEngine.Audio.AudioMixer)">
<summary>
Pauses all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens paused.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOPlay(UnityEngine.Audio.AudioMixer)">
<summary>
Plays all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens played.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOPlayBackwards(UnityEngine.Audio.AudioMixer)">
<summary>
Plays backwards all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens played.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOPlayForward(UnityEngine.Audio.AudioMixer)">
<summary>
Plays forward all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens played.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DORestart(UnityEngine.Audio.AudioMixer)">
<summary>
Restarts all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens restarted.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DORewind(UnityEngine.Audio.AudioMixer)">
<summary>
Rewinds all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens rewinded.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOSmoothRewind(UnityEngine.Audio.AudioMixer)">
<summary>
Smoothly rewinds all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens rewinded.
</summary>
</member>
<member name="M:DG.Tweening.ShortcutExtensions50.DOTogglePause(UnityEngine.Audio.AudioMixer)">
<summary>
Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
(meaning tweens that were started from this target, or that had this target added as an Id)
and returns the total number of tweens involved.
</summary>
</member>
<member name="T:DG.Tweening.TweenExtensions53">
<summary>
Methods that extend Tween objects and allow to control or get data from them.
These require at least Unity 5.3
</summary>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForCompletion(DG.Tweening.Tween,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed or complete.
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForCompletion(true);</code>
</summary>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForRewind(DG.Tweening.Tween,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed or rewinded.
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForRewind();</code>
</summary>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForKill(DG.Tweening.Tween,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed.
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForKill();</code>
</summary>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForElapsedLoops(DG.Tweening.Tween,System.Int32,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed or has gone through the given amount of loops.
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForElapsedLoops(2);</code>
</summary>
<param name="elapsedLoops">Elapsed loops to wait for</param>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForPosition(DG.Tweening.Tween,System.Single,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed or has reached the given position (loops included, delays excluded).
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForPosition(2.5f);</code>
</summary>
<param name="position">Position (loops included, delays excluded) to wait for</param>
</member>
<member name="M:DG.Tweening.TweenExtensions53.WaitForStart(DG.Tweening.Tween,System.Boolean)">
<summary>
Returns a <see cref="T:UnityEngine.CustomYieldInstruction"/> that waits until the tween is killed or started
(meaning when the tween is set in a playing state the first time, after any eventual delay).
It can be used inside a coroutine as a yield.
<para>Example usage:</para><code>yield return myTween.WaitForStart();</code>
</summary>
</member>
</members>
</doc>

View File

@ -35,7 +35,7 @@ namespace DG.Tweening
#endregion #endregion
#if UNITY_5 || UNITY_2017_0_OR_NEWER #if UNITY_5 || UNITY_2017_1_OR_NEWER
#region AudioMixer (Unity 5 or Newer) #region AudioMixer (Unity 5 or Newer)
/// <summary>Tweens an AudioMixer's exposed float to the given value. /// <summary>Tweens an AudioMixer's exposed float to the given value.

View File

@ -1,7 +1,7 @@
// Author: Daniele Giardini - http://www.demigiant.com // Author: Daniele Giardini - http://www.demigiant.com
// Created: 2018/07/13 // Created: 2018/07/13
#if DOTPHYSICS2D && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_0_OR_NEWER) #if DOTPHYSICS2D && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER)
using System; using System;
using UnityEngine; using UnityEngine;

View File

@ -1,7 +1,7 @@
// Author: Daniele Giardini - http://www.demigiant.com // Author: Daniele Giardini - http://www.demigiant.com
// Created: 2018/07/13 // Created: 2018/07/13
#if DOTSPRITE && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_0_OR_NEWER) #if DOTSPRITE && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER)
using System; using System;
using UnityEngine; using UnityEngine;
using DG.Tweening.Core; using DG.Tweening.Core;

View File

@ -1,7 +1,7 @@
// Author: Daniele Giardini - http://www.demigiant.com // Author: Daniele Giardini - http://www.demigiant.com
// Created: 2018/07/13 // Created: 2018/07/13
#if DOTUI && (UNITY_4_6 || UNITY_5 || UNITY_2017_0_OR_NEWER) #if DOTUI && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER)
using System; using System;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;

View File

@ -14,7 +14,7 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static class DOTweenModuleUnityVersion public static class DOTweenModuleUnityVersion
{ {
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_0_OR_NEWER #if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER
#region Unity 4.3 or Newer #region Unity 4.3 or Newer
#region Material #region Material
@ -71,7 +71,7 @@ namespace DG.Tweening
#endregion #endregion
#endif #endif
#if UNITY_5_3_OR_NEWER || UNITY_2017_0_OR_NEWER #if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
#region CustomYieldInstructions (Unity 5.3 or Newer) #region CustomYieldInstructions (Unity 5.3 or Newer)
/// <summary> /// <summary>
@ -169,7 +169,7 @@ namespace DG.Tweening
// ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
#if UNITY_5_3_OR_NEWER || UNITY_2017_0_OR_NEWER #if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
public static class DOTweenCYInstruction public static class DOTweenCYInstruction
{ {
public class WaitForCompletion : CustomYieldInstruction public class WaitForCompletion : CustomYieldInstruction