|
|
/*
|
|
|
http://www.cgsoso.com/forum-211-1.html
|
|
|
|
|
|
CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
|
|
|
|
|
|
CGSOSO 主打游戏开发,影视设计等CG资源素材。
|
|
|
|
|
|
插件如若商用,请务必官网购买!
|
|
|
|
|
|
daily assets update for try.
|
|
|
|
|
|
U should buy the asset from home store if u use it in your project!
|
|
|
*/
|
|
|
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Runtime.CompilerServices;
|
|
|
using UnityEngine;
|
|
|
using UnityEngine.Events;
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
|
public class LeanTween : MonoBehaviour
|
|
|
{
|
|
|
public static bool throwErrors = true;
|
|
|
|
|
|
public static float tau = (float)Math.PI * 2f;
|
|
|
|
|
|
public static float PI_DIV2 = (float)Math.PI / 2f;
|
|
|
|
|
|
private static LTSeq[] sequences;
|
|
|
|
|
|
private static LTDescr[] tweens;
|
|
|
|
|
|
private static int[] tweensFinished;
|
|
|
|
|
|
private static int[] tweensFinishedIds;
|
|
|
|
|
|
private static LTDescr tween;
|
|
|
|
|
|
private static int tweenMaxSearch = -1;
|
|
|
|
|
|
private static int maxTweens = 400;
|
|
|
|
|
|
private static int maxSequences = 400;
|
|
|
|
|
|
private static int frameRendered = -1;
|
|
|
|
|
|
private static GameObject _tweenEmpty;
|
|
|
|
|
|
public static float dtEstimated = -1f;
|
|
|
|
|
|
public static float dtManual;
|
|
|
|
|
|
public static float dtActual;
|
|
|
|
|
|
private static uint global_counter = 0u;
|
|
|
|
|
|
private static int i;
|
|
|
|
|
|
private static int j;
|
|
|
|
|
|
private static int finishedCnt;
|
|
|
|
|
|
public static AnimationCurve punch = new AnimationCurve(new Keyframe(0f, 0f), new Keyframe(0.112586f, 0.9976035f), new Keyframe(0.3120486f, -0.1720615f), new Keyframe(0.4316337f, 0.07030682f), new Keyframe(0.5524869f, -0.03141804f), new Keyframe(0.6549395f, 0.003909959f), new Keyframe(0.770987f, -0.009817753f), new Keyframe(0.8838775f, 0.001939224f), new Keyframe(1f, 0f));
|
|
|
|
|
|
public static AnimationCurve shake = new AnimationCurve(new Keyframe(0f, 0f), new Keyframe(0.25f, 1f), new Keyframe(0.75f, -1f), new Keyframe(1f, 0f));
|
|
|
|
|
|
private static int maxTweenReached;
|
|
|
|
|
|
public static int startSearch = 0;
|
|
|
|
|
|
public static LTDescr d;
|
|
|
|
|
|
private static Action<LTEvent>[] eventListeners;
|
|
|
|
|
|
private static GameObject[] goListeners;
|
|
|
|
|
|
private static int eventsMaxSearch = 0;
|
|
|
|
|
|
public static int EVENTS_MAX = 10;
|
|
|
|
|
|
public static int LISTENERS_MAX = 10;
|
|
|
|
|
|
private static int INIT_LISTENERS_MAX = LISTENERS_MAX;
|
|
|
|
|
|
[CompilerGenerated]
|
|
|
private static UnityAction<Scene, LoadSceneMode> _003C_003Ef__mg_0024cache0;
|
|
|
|
|
|
public static int maxSearch => tweenMaxSearch;
|
|
|
|
|
|
public static int maxSimulataneousTweens => maxTweens;
|
|
|
|
|
|
public static int tweensRunning
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
int num = 0;
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].toggle)
|
|
|
{
|
|
|
num++;
|
|
|
}
|
|
|
}
|
|
|
return num;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static GameObject tweenEmpty
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
init(maxTweens);
|
|
|
return _tweenEmpty;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void init()
|
|
|
{
|
|
|
init(maxTweens);
|
|
|
}
|
|
|
|
|
|
public static void init(int maxSimultaneousTweens)
|
|
|
{
|
|
|
init(maxSimultaneousTweens, maxSequences);
|
|
|
}
|
|
|
|
|
|
public static void init(int maxSimultaneousTweens, int maxSimultaneousSequences)
|
|
|
{
|
|
|
if (tweens == null)
|
|
|
{
|
|
|
maxTweens = maxSimultaneousTweens;
|
|
|
tweens = new LTDescr[maxTweens];
|
|
|
tweensFinished = new int[maxTweens];
|
|
|
tweensFinishedIds = new int[maxTweens];
|
|
|
_tweenEmpty = new GameObject();
|
|
|
_tweenEmpty.name = "~LeanTween";
|
|
|
_tweenEmpty.AddComponent(typeof(LeanTween));
|
|
|
_tweenEmpty.isStatic = true;
|
|
|
_tweenEmpty.hideFlags = HideFlags.HideAndDontSave;
|
|
|
UnityEngine.Object.DontDestroyOnLoad(_tweenEmpty);
|
|
|
for (int i = 0; i < maxTweens; i++)
|
|
|
{
|
|
|
tweens[i] = new LTDescr();
|
|
|
}
|
|
|
SceneManager.sceneLoaded += onLevelWasLoaded54;
|
|
|
sequences = new LTSeq[maxSimultaneousSequences];
|
|
|
for (int j = 0; j < maxSimultaneousSequences; j++)
|
|
|
{
|
|
|
sequences[j] = new LTSeq();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void reset()
|
|
|
{
|
|
|
if (tweens != null)
|
|
|
{
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i] != null)
|
|
|
{
|
|
|
tweens[i].toggle = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
tweens = null;
|
|
|
UnityEngine.Object.Destroy(_tweenEmpty);
|
|
|
}
|
|
|
|
|
|
public void Update()
|
|
|
{
|
|
|
update();
|
|
|
}
|
|
|
|
|
|
private static void onLevelWasLoaded54(Scene scene, LoadSceneMode mode)
|
|
|
{
|
|
|
internalOnLevelWasLoaded(scene.buildIndex);
|
|
|
}
|
|
|
|
|
|
private static void internalOnLevelWasLoaded(int lvl)
|
|
|
{
|
|
|
LTGUI.reset();
|
|
|
}
|
|
|
|
|
|
public static void update()
|
|
|
{
|
|
|
if (frameRendered == Time.frameCount)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
init();
|
|
|
dtEstimated = ((dtEstimated < 0f) ? 0f : (dtEstimated = Time.unscaledDeltaTime));
|
|
|
dtActual = Time.deltaTime;
|
|
|
maxTweenReached = 0;
|
|
|
finishedCnt = 0;
|
|
|
for (int i = 0; i <= tweenMaxSearch && i < maxTweens; i++)
|
|
|
{
|
|
|
tween = tweens[i];
|
|
|
if (tween.toggle)
|
|
|
{
|
|
|
maxTweenReached = i;
|
|
|
if (tween.updateInternal())
|
|
|
{
|
|
|
tweensFinished[finishedCnt] = i;
|
|
|
tweensFinishedIds[finishedCnt] = tweens[i].id;
|
|
|
finishedCnt++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
tweenMaxSearch = maxTweenReached;
|
|
|
frameRendered = Time.frameCount;
|
|
|
for (int j = 0; j < finishedCnt; j++)
|
|
|
{
|
|
|
LeanTween.j = tweensFinished[j];
|
|
|
tween = tweens[LeanTween.j];
|
|
|
if (tween.id == tweensFinishedIds[j])
|
|
|
{
|
|
|
removeTween(LeanTween.j);
|
|
|
if (tween.hasExtraOnCompletes && tween.trans != null)
|
|
|
{
|
|
|
tween.callOnCompletes();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void removeTween(int i, int uniqueId)
|
|
|
{
|
|
|
if (tweens[i].uniqueId == uniqueId)
|
|
|
{
|
|
|
removeTween(i);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void removeTween(int i)
|
|
|
{
|
|
|
if (!tweens[i].toggle)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
tweens[i].toggle = false;
|
|
|
tweens[i].counter = uint.MaxValue;
|
|
|
if (tweens[i].destroyOnComplete)
|
|
|
{
|
|
|
if (tweens[i]._optional.ltRect != null)
|
|
|
{
|
|
|
LTGUI.destroy(tweens[i]._optional.ltRect.id);
|
|
|
}
|
|
|
else if (tweens[i].trans != null && tweens[i].trans.gameObject != _tweenEmpty)
|
|
|
{
|
|
|
UnityEngine.Object.Destroy(tweens[i].trans.gameObject);
|
|
|
}
|
|
|
}
|
|
|
startSearch = i;
|
|
|
if (i + 1 >= tweenMaxSearch)
|
|
|
{
|
|
|
startSearch = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static Vector3[] add(Vector3[] a, Vector3 b)
|
|
|
{
|
|
|
Vector3[] array = new Vector3[a.Length];
|
|
|
for (i = 0; i < a.Length; i++)
|
|
|
{
|
|
|
array[i] = a[i] + b;
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
|
|
|
|
public static float closestRot(float from, float to)
|
|
|
{
|
|
|
float num = 0f - (360f - to);
|
|
|
float num2 = 360f + to;
|
|
|
float num3 = Mathf.Abs(to - from);
|
|
|
float num4 = Mathf.Abs(num - from);
|
|
|
float num5 = Mathf.Abs(num2 - from);
|
|
|
if (num3 < num4 && num3 < num5)
|
|
|
{
|
|
|
return to;
|
|
|
}
|
|
|
if (num4 < num5)
|
|
|
{
|
|
|
return num;
|
|
|
}
|
|
|
return num2;
|
|
|
}
|
|
|
|
|
|
public static void cancelAll()
|
|
|
{
|
|
|
cancelAll(callComplete: false);
|
|
|
}
|
|
|
|
|
|
public static void cancelAll(bool callComplete)
|
|
|
{
|
|
|
init();
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].trans != null)
|
|
|
{
|
|
|
if (callComplete && tweens[i].optional.onComplete != null)
|
|
|
{
|
|
|
tweens[i].optional.onComplete();
|
|
|
}
|
|
|
removeTween(i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void cancel(GameObject gameObject)
|
|
|
{
|
|
|
cancel(gameObject, callOnComplete: false);
|
|
|
}
|
|
|
|
|
|
public static void cancel(GameObject gameObject, bool callOnComplete)
|
|
|
{
|
|
|
init();
|
|
|
Transform transform = gameObject.transform;
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].toggle && tweens[i].trans == transform)
|
|
|
{
|
|
|
if (callOnComplete && tweens[i].optional.onComplete != null)
|
|
|
{
|
|
|
tweens[i].optional.onComplete();
|
|
|
}
|
|
|
removeTween(i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void cancel(RectTransform rect)
|
|
|
{
|
|
|
cancel(rect.gameObject, callOnComplete: false);
|
|
|
}
|
|
|
|
|
|
public static void cancel(GameObject gameObject, int uniqueId, bool callOnComplete = false)
|
|
|
{
|
|
|
if (uniqueId < 0)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
init();
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (tweens[num].trans == null || (tweens[num].trans.gameObject == gameObject && tweens[num].counter == num2))
|
|
|
{
|
|
|
if (callOnComplete && tweens[num].optional.onComplete != null)
|
|
|
{
|
|
|
tweens[num].optional.onComplete();
|
|
|
}
|
|
|
removeTween(num);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void cancel(LTRect ltRect, int uniqueId)
|
|
|
{
|
|
|
if (uniqueId >= 0)
|
|
|
{
|
|
|
init();
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (tweens[num]._optional.ltRect == ltRect && tweens[num].counter == num2)
|
|
|
{
|
|
|
removeTween(num);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void cancel(int uniqueId)
|
|
|
{
|
|
|
cancel(uniqueId, callOnComplete: false);
|
|
|
}
|
|
|
|
|
|
public static void cancel(int uniqueId, bool callOnComplete)
|
|
|
{
|
|
|
if (uniqueId < 0)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
init();
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (num > tweens.Length - 1)
|
|
|
{
|
|
|
int num3 = num - tweens.Length;
|
|
|
LTSeq lTSeq = sequences[num3];
|
|
|
for (int i = 0; i < maxSequences; i++)
|
|
|
{
|
|
|
if (lTSeq.current.tween != null)
|
|
|
{
|
|
|
int uniqueId2 = lTSeq.current.tween.uniqueId;
|
|
|
int num4 = uniqueId2 & 0xFFFF;
|
|
|
removeTween(num4);
|
|
|
}
|
|
|
if (lTSeq.previous == null)
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
lTSeq.current = lTSeq.previous;
|
|
|
}
|
|
|
}
|
|
|
else if (tweens[num].counter == num2)
|
|
|
{
|
|
|
if (callOnComplete && tweens[num].optional.onComplete != null)
|
|
|
{
|
|
|
tweens[num].optional.onComplete();
|
|
|
}
|
|
|
removeTween(num);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static LTDescr descr(int uniqueId)
|
|
|
{
|
|
|
init();
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (tweens[num] != null && tweens[num].uniqueId == uniqueId && tweens[num].counter == num2)
|
|
|
{
|
|
|
return tweens[num];
|
|
|
}
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].uniqueId == uniqueId && tweens[i].counter == num2)
|
|
|
{
|
|
|
return tweens[i];
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public static LTDescr description(int uniqueId)
|
|
|
{
|
|
|
return descr(uniqueId);
|
|
|
}
|
|
|
|
|
|
public static LTDescr[] descriptions(GameObject gameObject = null)
|
|
|
{
|
|
|
if (gameObject == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
List<LTDescr> list = new List<LTDescr>();
|
|
|
Transform transform = gameObject.transform;
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].toggle && tweens[i].trans == transform)
|
|
|
{
|
|
|
list.Add(tweens[i]);
|
|
|
}
|
|
|
}
|
|
|
return list.ToArray();
|
|
|
}
|
|
|
|
|
|
[Obsolete("Use 'pause( id )' instead")]
|
|
|
public static void pause(GameObject gameObject, int uniqueId)
|
|
|
{
|
|
|
pause(uniqueId);
|
|
|
}
|
|
|
|
|
|
public static void pause(int uniqueId)
|
|
|
{
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (tweens[num].counter == num2)
|
|
|
{
|
|
|
tweens[num].pause();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void pause(GameObject gameObject)
|
|
|
{
|
|
|
Transform transform = gameObject.transform;
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].trans == transform)
|
|
|
{
|
|
|
tweens[i].pause();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void pauseAll()
|
|
|
{
|
|
|
init();
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
tweens[i].pause();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void resumeAll()
|
|
|
{
|
|
|
init();
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
tweens[i].resume();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
[Obsolete("Use 'resume( id )' instead")]
|
|
|
public static void resume(GameObject gameObject, int uniqueId)
|
|
|
{
|
|
|
resume(uniqueId);
|
|
|
}
|
|
|
|
|
|
public static void resume(int uniqueId)
|
|
|
{
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (tweens[num].counter == num2)
|
|
|
{
|
|
|
tweens[num].resume();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void resume(GameObject gameObject)
|
|
|
{
|
|
|
Transform transform = gameObject.transform;
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].trans == transform)
|
|
|
{
|
|
|
tweens[i].resume();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static bool isTweening(GameObject gameObject = null)
|
|
|
{
|
|
|
if (gameObject == null)
|
|
|
{
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].toggle)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
Transform transform = gameObject.transform;
|
|
|
for (int j = 0; j <= tweenMaxSearch; j++)
|
|
|
{
|
|
|
if (tweens[j].toggle && tweens[j].trans == transform)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public static bool isTweening(RectTransform rect)
|
|
|
{
|
|
|
return isTweening(rect.gameObject);
|
|
|
}
|
|
|
|
|
|
public static bool isTweening(int uniqueId)
|
|
|
{
|
|
|
int num = uniqueId & 0xFFFF;
|
|
|
int num2 = uniqueId >> 16;
|
|
|
if (num < 0 || num >= maxTweens)
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
if (tweens[num].counter == num2 && tweens[num].toggle)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public static bool isTweening(LTRect ltRect)
|
|
|
{
|
|
|
for (int i = 0; i <= tweenMaxSearch; i++)
|
|
|
{
|
|
|
if (tweens[i].toggle && tweens[i]._optional.ltRect == ltRect)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public static void drawBezierPath(Vector3 a, Vector3 b, Vector3 c, Vector3 d, float arrowSize = 0f, Transform arrowTransform = null)
|
|
|
{
|
|
|
Vector3 vector = a;
|
|
|
Vector3 a2 = -a + 3f * (b - c) + d;
|
|
|
Vector3 b2 = 3f * (a + c) - 6f * b;
|
|
|
Vector3 b3 = 3f * (b - a);
|
|
|
if (arrowSize > 0f)
|
|
|
{
|
|
|
Vector3 position = arrowTransform.position;
|
|
|
Quaternion rotation = arrowTransform.rotation;
|
|
|
float num = 0f;
|
|
|
for (float num2 = 1f; num2 <= 120f; num2 += 1f)
|
|
|
{
|
|
|
float num3 = num2 / 120f;
|
|
|
Vector3 vector2 = ((a2 * num3 + b2) * num3 + b3) * num3 + a;
|
|
|
Gizmos.DrawLine(vector, vector2);
|
|
|
num += (vector2 - vector).magnitude;
|
|
|
if (num > 1f)
|
|
|
{
|
|
|
num -= 1f;
|
|
|
arrowTransform.position = vector2;
|
|
|
arrowTransform.LookAt(vector, Vector3.forward);
|
|
|
Vector3 a3 = arrowTransform.TransformDirection(Vector3.right);
|
|
|
Vector3 normalized = (vector - vector2).normalized;
|
|
|
Gizmos.DrawLine(vector2, vector2 + (a3 + normalized) * arrowSize);
|
|
|
a3 = arrowTransform.TransformDirection(-Vector3.right);
|
|
|
Gizmos.DrawLine(vector2, vector2 + (a3 + normalized) * arrowSize);
|
|
|
}
|
|
|
vector = vector2;
|
|
|
}
|
|
|
arrowTransform.position = position;
|
|
|
arrowTransform.rotation = rotation;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
for (float num4 = 1f; num4 <= 30f; num4 += 1f)
|
|
|
{
|
|
|
float num3 = num4 / 30f;
|
|
|
Vector3 vector2 = ((a2 * num3 + b2) * num3 + b3) * num3 + a;
|
|
|
Gizmos.DrawLine(vector, vector2);
|
|
|
vector = vector2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static object logError(string error)
|
|
|
{
|
|
|
if (throwErrors)
|
|
|
{
|
|
|
UnityEngine.Debug.LogError(error);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
UnityEngine.Debug.Log(error);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public static LTDescr options(LTDescr seed)
|
|
|
{
|
|
|
UnityEngine.Debug.LogError("error this function is no longer used");
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public static LTDescr options()
|
|
|
{
|
|
|
init();
|
|
|
bool flag = false;
|
|
|
j = 0;
|
|
|
i = startSearch;
|
|
|
while (j <= maxTweens)
|
|
|
{
|
|
|
if (j >= maxTweens)
|
|
|
{
|
|
|
return logError("LeanTween - You have run out of available spaces for tweening. To avoid this error increase the number of spaces to available for tweening when you initialize the LeanTween class ex: LeanTween.init( " + maxTweens * 2 + " );") as LTDescr;
|
|
|
}
|
|
|
if (i >= maxTweens)
|
|
|
{
|
|
|
i = 0;
|
|
|
}
|
|
|
if (!tweens[i].toggle)
|
|
|
{
|
|
|
if (i + 1 > tweenMaxSearch)
|
|
|
{
|
|
|
tweenMaxSearch = i + 1;
|
|
|
}
|
|
|
startSearch = i + 1;
|
|
|
flag = true;
|
|
|
break;
|
|
|
}
|
|
|
j++;
|
|
|
i++;
|
|
|
}
|
|
|
if (!flag)
|
|
|
{
|
|
|
logError("no available tween found!");
|
|
|
}
|
|
|
tweens[i].reset();
|
|
|
global_counter++;
|
|
|
if (global_counter > 32768)
|
|
|
{
|
|
|
global_counter = 0u;
|
|
|
}
|
|
|
tweens[i].setId((uint)i, global_counter);
|
|
|
return tweens[i];
|
|
|
}
|
|
|
|
|
|
private static LTDescr pushNewTween(GameObject gameObject, Vector3 to, float time, LTDescr tween)
|
|
|
{
|
|
|
init(maxTweens);
|
|
|
if (gameObject == null || tween == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
tween.trans = gameObject.transform;
|
|
|
tween.to = to;
|
|
|
tween.time = time;
|
|
|
if (tween.time <= 0f)
|
|
|
{
|
|
|
tween.updateInternal();
|
|
|
}
|
|
|
return tween;
|
|
|
}
|
|
|
|
|
|
public static LTDescr play(RectTransform rectTransform, Sprite[] sprites)
|
|
|
{
|
|
|
float num = 0.25f;
|
|
|
float time = num * (float)sprites.Length;
|
|
|
return pushNewTween(rectTransform.gameObject, new Vector3((float)sprites.Length - 1f, 0f, 0f), time, options().setCanvasPlaySprite().setSprites(sprites).setRepeat(-1));
|
|
|
}
|
|
|
|
|
|
public static LTDescr alpha(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
LTDescr lTDescr = pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setAlpha());
|
|
|
SpriteRenderer spriteRenderer = lTDescr.spriteRen = gameObject.GetComponent<SpriteRenderer>();
|
|
|
return lTDescr;
|
|
|
}
|
|
|
|
|
|
public static LTSeq sequence(bool initSequence = true)
|
|
|
{
|
|
|
init(maxTweens);
|
|
|
for (int i = 0; i < sequences.Length; i++)
|
|
|
{
|
|
|
if ((sequences[i].tween != null && sequences[i].tween.toggle) || sequences[i].toggle)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
LTSeq lTSeq = sequences[i];
|
|
|
if (initSequence)
|
|
|
{
|
|
|
lTSeq.init((uint)(i + tweens.Length), global_counter);
|
|
|
global_counter++;
|
|
|
if (global_counter > 32768)
|
|
|
{
|
|
|
global_counter = 0u;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
lTSeq.reset();
|
|
|
}
|
|
|
return lTSeq;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public static LTDescr alpha(LTRect ltRect, float to, float time)
|
|
|
{
|
|
|
ltRect.alphaEnabled = true;
|
|
|
return pushNewTween(tweenEmpty, new Vector3(to, 0f, 0f), time, options().setGUIAlpha().setRect(ltRect));
|
|
|
}
|
|
|
|
|
|
public static LTDescr textAlpha(RectTransform rectTransform, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTransform.gameObject, new Vector3(to, 0f, 0f), time, options().setTextAlpha());
|
|
|
}
|
|
|
|
|
|
public static LTDescr alphaText(RectTransform rectTransform, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTransform.gameObject, new Vector3(to, 0f, 0f), time, options().setTextAlpha());
|
|
|
}
|
|
|
|
|
|
public static LTDescr alphaCanvas(CanvasGroup canvasGroup, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(canvasGroup.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasGroupAlpha());
|
|
|
}
|
|
|
|
|
|
public static LTDescr alphaVertex(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setAlphaVertex());
|
|
|
}
|
|
|
|
|
|
public static LTDescr color(GameObject gameObject, Color to, float time)
|
|
|
{
|
|
|
LTDescr lTDescr = pushNewTween(gameObject, new Vector3(1f, to.a, 0f), time, options().setColor().setPoint(new Vector3(to.r, to.g, to.b)));
|
|
|
SpriteRenderer spriteRenderer = lTDescr.spriteRen = gameObject.GetComponent<SpriteRenderer>();
|
|
|
return lTDescr;
|
|
|
}
|
|
|
|
|
|
public static LTDescr textColor(RectTransform rectTransform, Color to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTransform.gameObject, new Vector3(1f, to.a, 0f), time, options().setTextColor().setPoint(new Vector3(to.r, to.g, to.b)));
|
|
|
}
|
|
|
|
|
|
public static LTDescr colorText(RectTransform rectTransform, Color to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTransform.gameObject, new Vector3(1f, to.a, 0f), time, options().setTextColor().setPoint(new Vector3(to.r, to.g, to.b)));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedCall(float delayTime, Action callback)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, Vector3.zero, delayTime, options().setCallback().setOnComplete(callback));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedCall(float delayTime, Action<object> callback)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, Vector3.zero, delayTime, options().setCallback().setOnComplete(callback));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedCall(GameObject gameObject, float delayTime, Action callback)
|
|
|
{
|
|
|
return pushNewTween(gameObject, Vector3.zero, delayTime, options().setCallback().setOnComplete(callback));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedCall(GameObject gameObject, float delayTime, Action<object> callback)
|
|
|
{
|
|
|
return pushNewTween(gameObject, Vector3.zero, delayTime, options().setCallback().setOnComplete(callback));
|
|
|
}
|
|
|
|
|
|
public static LTDescr destroyAfter(LTRect rect, float delayTime)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, Vector3.zero, delayTime, options().setCallback().setRect(rect).setDestroyOnComplete(doesDestroy: true));
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setMove());
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, Vector2 to, float time)
|
|
|
{
|
|
|
float x = to.x;
|
|
|
float y = to.y;
|
|
|
Vector3 position = gameObject.transform.position;
|
|
|
return pushNewTween(gameObject, new Vector3(x, y, position.z), time, options().setMove());
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, Vector3[] to, float time)
|
|
|
{
|
|
|
d = options().setMoveCurved();
|
|
|
if (d.optional.path == null)
|
|
|
{
|
|
|
d.optional.path = new LTBezierPath(to);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
d.optional.path.setPoints(to);
|
|
|
}
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, LTBezierPath to, float time)
|
|
|
{
|
|
|
d = options().setMoveCurved();
|
|
|
d.optional.path = to;
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, LTSpline to, float time)
|
|
|
{
|
|
|
d = options().setMoveSpline();
|
|
|
d.optional.spline = to;
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveSpline(GameObject gameObject, Vector3[] to, float time)
|
|
|
{
|
|
|
d = options().setMoveSpline();
|
|
|
d.optional.spline = new LTSpline(to);
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveSpline(GameObject gameObject, LTSpline to, float time)
|
|
|
{
|
|
|
d = options().setMoveSpline();
|
|
|
d.optional.spline = to;
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveSplineLocal(GameObject gameObject, Vector3[] to, float time)
|
|
|
{
|
|
|
d = options().setMoveSplineLocal();
|
|
|
d.optional.spline = new LTSpline(to);
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(LTRect ltRect, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, to, time, options().setGUIMove().setRect(ltRect));
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveMargin(LTRect ltRect, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, to, time, options().setGUIMoveMargin().setRect(ltRect));
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveX(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveX());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveY(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveY());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveZ(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveZ());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocal(GameObject gameObject, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setMoveLocal());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocal(GameObject gameObject, Vector3[] to, float time)
|
|
|
{
|
|
|
d = options().setMoveCurvedLocal();
|
|
|
if (d.optional.path == null)
|
|
|
{
|
|
|
d.optional.path = new LTBezierPath(to);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
d.optional.path.setPoints(to);
|
|
|
}
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocalX(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveLocalX());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocalY(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveLocalY());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocalZ(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setMoveLocalZ());
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocal(GameObject gameObject, LTBezierPath to, float time)
|
|
|
{
|
|
|
d = options().setMoveCurvedLocal();
|
|
|
d.optional.path = to;
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveLocal(GameObject gameObject, LTSpline to, float time)
|
|
|
{
|
|
|
d = options().setMoveSplineLocal();
|
|
|
d.optional.spline = to;
|
|
|
return pushNewTween(gameObject, new Vector3(1f, 0f, 0f), time, d);
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(GameObject gameObject, Transform to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, Vector3.zero, time, options().setTo(to).setMoveToTransform());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotate(GameObject gameObject, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setRotate());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotate(LTRect ltRect, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, new Vector3(to, 0f, 0f), time, options().setGUIRotate().setRect(ltRect));
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateLocal(GameObject gameObject, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setRotateLocal());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateX(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setRotateX());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateY(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setRotateY());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateZ(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setRotateZ());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateAround(GameObject gameObject, Vector3 axis, float add, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(add, 0f, 0f), time, options().setAxis(axis).setRotateAround());
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateAroundLocal(GameObject gameObject, Vector3 axis, float add, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(add, 0f, 0f), time, options().setRotateAroundLocal().setAxis(axis));
|
|
|
}
|
|
|
|
|
|
public static LTDescr scale(GameObject gameObject, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setScale());
|
|
|
}
|
|
|
|
|
|
public static LTDescr scale(LTRect ltRect, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, to, time, options().setGUIScale().setRect(ltRect));
|
|
|
}
|
|
|
|
|
|
public static LTDescr scaleX(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setScaleX());
|
|
|
}
|
|
|
|
|
|
public static LTDescr scaleY(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setScaleY());
|
|
|
}
|
|
|
|
|
|
public static LTDescr scaleZ(GameObject gameObject, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setScaleZ());
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, float from, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setCallback().setFrom(new Vector3(from, 0f, 0f)));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(float from, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, new Vector3(to, 0f, 0f), time, options().setCallback().setFrom(new Vector3(from, 0f, 0f)));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Vector2 from, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to.x, to.y, 0f), time, options().setValue3().setTo(new Vector3(to.x, to.y, 0f)).setFrom(new Vector3(from.x, from.y, 0f)));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Vector3 from, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setValue3().setFrom(from));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Color from, Color to, float time)
|
|
|
{
|
|
|
LTDescr lTDescr = pushNewTween(gameObject, new Vector3(1f, to.a, 0f), time, options().setCallbackColor().setPoint(new Vector3(to.r, to.g, to.b)).setFromColor(from)
|
|
|
.setHasInitialized(has: false));
|
|
|
SpriteRenderer spriteRenderer = lTDescr.spriteRen = gameObject.GetComponent<SpriteRenderer>();
|
|
|
return lTDescr;
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<float> callOnUpdate, float from, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setCallback().setTo(new Vector3(to, 0f, 0f)).setFrom(new Vector3(from, 0f, 0f))
|
|
|
.setOnUpdate(callOnUpdate));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<float, float> callOnUpdateRatio, float from, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setCallback().setTo(new Vector3(to, 0f, 0f)).setFrom(new Vector3(from, 0f, 0f))
|
|
|
.setOnUpdateRatio(callOnUpdateRatio));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<Color> callOnUpdate, Color from, Color to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(1f, to.a, 0f), time, options().setCallbackColor().setPoint(new Vector3(to.r, to.g, to.b)).setAxis(new Vector3(from.r, from.g, from.b))
|
|
|
.setFrom(new Vector3(0f, from.a, 0f))
|
|
|
.setHasInitialized(has: false)
|
|
|
.setOnUpdateColor(callOnUpdate));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<Color, object> callOnUpdate, Color from, Color to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(1f, to.a, 0f), time, options().setCallbackColor().setPoint(new Vector3(to.r, to.g, to.b)).setAxis(new Vector3(from.r, from.g, from.b))
|
|
|
.setFrom(new Vector3(0f, from.a, 0f))
|
|
|
.setHasInitialized(has: false)
|
|
|
.setOnUpdateColor(callOnUpdate));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<Vector2> callOnUpdate, Vector2 from, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to.x, to.y, 0f), time, options().setValue3().setTo(new Vector3(to.x, to.y, 0f)).setFrom(new Vector3(from.x, from.y, 0f))
|
|
|
.setOnUpdateVector2(callOnUpdate));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<Vector3> callOnUpdate, Vector3 from, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, to, time, options().setValue3().setTo(to).setFrom(from)
|
|
|
.setOnUpdateVector3(callOnUpdate));
|
|
|
}
|
|
|
|
|
|
public static LTDescr value(GameObject gameObject, Action<float, object> callOnUpdate, float from, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(gameObject, new Vector3(to, 0f, 0f), time, options().setCallback().setTo(new Vector3(to, 0f, 0f)).setFrom(new Vector3(from, 0f, 0f))
|
|
|
.setOnUpdate(callOnUpdate, gameObject));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedSound(AudioClip audio, Vector3 pos, float volume)
|
|
|
{
|
|
|
return pushNewTween(tweenEmpty, pos, 0f, options().setDelayedSound().setTo(pos).setFrom(new Vector3(volume, 0f, 0f))
|
|
|
.setAudio(audio));
|
|
|
}
|
|
|
|
|
|
public static LTDescr delayedSound(GameObject gameObject, AudioClip audio, Vector3 pos, float volume)
|
|
|
{
|
|
|
return pushNewTween(gameObject, pos, 0f, options().setDelayedSound().setTo(pos).setFrom(new Vector3(volume, 0f, 0f))
|
|
|
.setAudio(audio));
|
|
|
}
|
|
|
|
|
|
public static LTDescr move(RectTransform rectTrans, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, to, time, options().setCanvasMove().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveX(RectTransform rectTrans, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasMoveX().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveY(RectTransform rectTrans, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasMoveY().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr moveZ(RectTransform rectTrans, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasMoveZ().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotate(RectTransform rectTrans, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasRotateAround().setRect(rectTrans).setAxis(Vector3.forward));
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotate(RectTransform rectTrans, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, to, time, options().setCanvasRotateAround().setRect(rectTrans).setAxis(Vector3.forward));
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateAround(RectTransform rectTrans, Vector3 axis, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasRotateAround().setRect(rectTrans).setAxis(axis));
|
|
|
}
|
|
|
|
|
|
public static LTDescr rotateAroundLocal(RectTransform rectTrans, Vector3 axis, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasRotateAroundLocal().setRect(rectTrans).setAxis(axis));
|
|
|
}
|
|
|
|
|
|
public static LTDescr scale(RectTransform rectTrans, Vector3 to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, to, time, options().setCanvasScale().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr size(RectTransform rectTrans, Vector2 to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, to, time, options().setCanvasSizeDelta().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr alpha(RectTransform rectTrans, float to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(to, 0f, 0f), time, options().setCanvasAlpha().setRect(rectTrans));
|
|
|
}
|
|
|
|
|
|
public static LTDescr color(RectTransform rectTrans, Color to, float time)
|
|
|
{
|
|
|
return pushNewTween(rectTrans.gameObject, new Vector3(1f, to.a, 0f), time, options().setCanvasColor().setRect(rectTrans).setPoint(new Vector3(to.r, to.g, to.b)));
|
|
|
}
|
|
|
|
|
|
public static float tweenOnCurve(LTDescr tweenDescr, float ratioPassed)
|
|
|
{
|
|
|
Vector3 from = tweenDescr.from;
|
|
|
return from.x + tweenDescr.diff.x * tweenDescr.optional.animationCurve.Evaluate(ratioPassed);
|
|
|
}
|
|
|
|
|
|
public static Vector3 tweenOnCurveVector(LTDescr tweenDescr, float ratioPassed)
|
|
|
{
|
|
|
Vector3 from = tweenDescr.from;
|
|
|
float x = from.x + tweenDescr.diff.x * tweenDescr.optional.animationCurve.Evaluate(ratioPassed);
|
|
|
Vector3 from2 = tweenDescr.from;
|
|
|
float y = from2.y + tweenDescr.diff.y * tweenDescr.optional.animationCurve.Evaluate(ratioPassed);
|
|
|
Vector3 from3 = tweenDescr.from;
|
|
|
return new Vector3(x, y, from3.z + tweenDescr.diff.z * tweenDescr.optional.animationCurve.Evaluate(ratioPassed));
|
|
|
}
|
|
|
|
|
|
public static float easeOutQuadOpt(float start, float diff, float ratioPassed)
|
|
|
{
|
|
|
return (0f - diff) * ratioPassed * (ratioPassed - 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInQuadOpt(float start, float diff, float ratioPassed)
|
|
|
{
|
|
|
return diff * ratioPassed * ratioPassed + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutQuadOpt(float start, float diff, float ratioPassed)
|
|
|
{
|
|
|
ratioPassed /= 0.5f;
|
|
|
if (ratioPassed < 1f)
|
|
|
{
|
|
|
return diff / 2f * ratioPassed * ratioPassed + start;
|
|
|
}
|
|
|
ratioPassed -= 1f;
|
|
|
return (0f - diff) / 2f * (ratioPassed * (ratioPassed - 2f) - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static Vector3 easeInOutQuadOpt(Vector3 start, Vector3 diff, float ratioPassed)
|
|
|
{
|
|
|
ratioPassed /= 0.5f;
|
|
|
if (ratioPassed < 1f)
|
|
|
{
|
|
|
return diff / 2f * ratioPassed * ratioPassed + start;
|
|
|
}
|
|
|
ratioPassed -= 1f;
|
|
|
return -diff / 2f * (ratioPassed * (ratioPassed - 2f) - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float linear(float start, float end, float val)
|
|
|
{
|
|
|
return Mathf.Lerp(start, end, val);
|
|
|
}
|
|
|
|
|
|
public static float clerp(float start, float end, float val)
|
|
|
{
|
|
|
float num = 0f;
|
|
|
float num2 = 360f;
|
|
|
float num3 = Mathf.Abs((num2 - num) / 2f);
|
|
|
float num4 = 0f;
|
|
|
float num5 = 0f;
|
|
|
if (end - start < 0f - num3)
|
|
|
{
|
|
|
num5 = (num2 - start + end) * val;
|
|
|
return start + num5;
|
|
|
}
|
|
|
if (end - start > num3)
|
|
|
{
|
|
|
num5 = (0f - (num2 - end + start)) * val;
|
|
|
return start + num5;
|
|
|
}
|
|
|
return start + (end - start) * val;
|
|
|
}
|
|
|
|
|
|
public static float spring(float start, float end, float val)
|
|
|
{
|
|
|
val = Mathf.Clamp01(val);
|
|
|
val = (Mathf.Sin(val * (float)Math.PI * (0.2f + 2.5f * val * val * val)) * Mathf.Pow(1f - val, 2.2f) + val) * (1f + 1.2f * (1f - val));
|
|
|
return start + (end - start) * val;
|
|
|
}
|
|
|
|
|
|
public static float easeInQuad(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * val * val + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutQuad(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return (0f - end) * val * (val - 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutQuad(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return end / 2f * val * val + start;
|
|
|
}
|
|
|
val -= 1f;
|
|
|
return (0f - end) / 2f * (val * (val - 2f) - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutQuadOpt2(float start, float diffBy2, float val, float val2)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return diffBy2 * val2 + start;
|
|
|
}
|
|
|
val -= 1f;
|
|
|
return (0f - diffBy2) * (val2 - 2f - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInCubic(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * val * val * val + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutCubic(float start, float end, float val)
|
|
|
{
|
|
|
val -= 1f;
|
|
|
end -= start;
|
|
|
return end * (val * val * val + 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutCubic(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return end / 2f * val * val * val + start;
|
|
|
}
|
|
|
val -= 2f;
|
|
|
return end / 2f * (val * val * val + 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInQuart(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * val * val * val * val + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutQuart(float start, float end, float val)
|
|
|
{
|
|
|
val -= 1f;
|
|
|
end -= start;
|
|
|
return (0f - end) * (val * val * val * val - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutQuart(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return end / 2f * val * val * val * val + start;
|
|
|
}
|
|
|
val -= 2f;
|
|
|
return (0f - end) / 2f * (val * val * val * val - 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInQuint(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * val * val * val * val * val + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutQuint(float start, float end, float val)
|
|
|
{
|
|
|
val -= 1f;
|
|
|
end -= start;
|
|
|
return end * (val * val * val * val * val + 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutQuint(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return end / 2f * val * val * val * val * val + start;
|
|
|
}
|
|
|
val -= 2f;
|
|
|
return end / 2f * (val * val * val * val * val + 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInSine(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return (0f - end) * Mathf.Cos(val / 1f * ((float)Math.PI / 2f)) + end + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutSine(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * Mathf.Sin(val / 1f * ((float)Math.PI / 2f)) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutSine(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return (0f - end) / 2f * (Mathf.Cos((float)Math.PI * val / 1f) - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInExpo(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * Mathf.Pow(2f, 10f * (val / 1f - 1f)) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutExpo(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return end * (0f - Mathf.Pow(2f, -10f * val / 1f) + 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutExpo(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return end / 2f * Mathf.Pow(2f, 10f * (val - 1f)) + start;
|
|
|
}
|
|
|
val -= 1f;
|
|
|
return end / 2f * (0f - Mathf.Pow(2f, -10f * val) + 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInCirc(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
return (0f - end) * (Mathf.Sqrt(1f - val * val) - 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutCirc(float start, float end, float val)
|
|
|
{
|
|
|
val -= 1f;
|
|
|
end -= start;
|
|
|
return end * Mathf.Sqrt(1f - val * val) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutCirc(float start, float end, float val)
|
|
|
{
|
|
|
val /= 0.5f;
|
|
|
end -= start;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
return (0f - end) / 2f * (Mathf.Sqrt(1f - val * val) - 1f) + start;
|
|
|
}
|
|
|
val -= 2f;
|
|
|
return end / 2f * (Mathf.Sqrt(1f - val * val) + 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInBounce(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
float num = 1f;
|
|
|
return end - easeOutBounce(0f, end, num - val) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutBounce(float start, float end, float val)
|
|
|
{
|
|
|
val /= 1f;
|
|
|
end -= start;
|
|
|
if (val < 0.363636374f)
|
|
|
{
|
|
|
return end * (7.5625f * val * val) + start;
|
|
|
}
|
|
|
if (val < 0.727272749f)
|
|
|
{
|
|
|
val -= 0.545454562f;
|
|
|
return end * (7.5625f * val * val + 0.75f) + start;
|
|
|
}
|
|
|
if ((double)val < 0.90909090909090906)
|
|
|
{
|
|
|
val -= 0.8181818f;
|
|
|
return end * (7.5625f * val * val + 0.9375f) + start;
|
|
|
}
|
|
|
val -= 21f / 22f;
|
|
|
return end * (7.5625f * val * val + 63f / 64f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutBounce(float start, float end, float val)
|
|
|
{
|
|
|
end -= start;
|
|
|
float num = 1f;
|
|
|
if (val < num / 2f)
|
|
|
{
|
|
|
return easeInBounce(0f, end, val * 2f) * 0.5f + start;
|
|
|
}
|
|
|
return easeOutBounce(0f, end, val * 2f - num) * 0.5f + end * 0.5f + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInBack(float start, float end, float val, float overshoot = 1f)
|
|
|
{
|
|
|
end -= start;
|
|
|
val /= 1f;
|
|
|
float num = 1.70158f * overshoot;
|
|
|
return end * val * val * ((num + 1f) * val - num) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeOutBack(float start, float end, float val, float overshoot = 1f)
|
|
|
{
|
|
|
float num = 1.70158f * overshoot;
|
|
|
end -= start;
|
|
|
val = val / 1f - 1f;
|
|
|
return end * (val * val * ((num + 1f) * val + num) + 1f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutBack(float start, float end, float val, float overshoot = 1f)
|
|
|
{
|
|
|
float num = 1.70158f * overshoot;
|
|
|
end -= start;
|
|
|
val /= 0.5f;
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
num *= 1.525f * overshoot;
|
|
|
return end / 2f * (val * val * ((num + 1f) * val - num)) + start;
|
|
|
}
|
|
|
val -= 2f;
|
|
|
num *= 1.525f * overshoot;
|
|
|
return end / 2f * (val * val * ((num + 1f) * val + num) + 2f) + start;
|
|
|
}
|
|
|
|
|
|
public static float easeInElastic(float start, float end, float val, float overshoot = 1f, float period = 0.3f)
|
|
|
{
|
|
|
end -= start;
|
|
|
float num = 0f;
|
|
|
float num2 = 0f;
|
|
|
if (val == 0f)
|
|
|
{
|
|
|
return start;
|
|
|
}
|
|
|
if (val == 1f)
|
|
|
{
|
|
|
return start + end;
|
|
|
}
|
|
|
if (num2 == 0f || num2 < Mathf.Abs(end))
|
|
|
{
|
|
|
num2 = end;
|
|
|
num = period / 4f;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
num = period / ((float)Math.PI * 2f) * Mathf.Asin(end / num2);
|
|
|
}
|
|
|
if (overshoot > 1f && val > 0.6f)
|
|
|
{
|
|
|
overshoot = 1f + (1f - val) / 0.4f * (overshoot - 1f);
|
|
|
}
|
|
|
val -= 1f;
|
|
|
return start - num2 * Mathf.Pow(2f, 10f * val) * Mathf.Sin((val - num) * ((float)Math.PI * 2f) / period) * overshoot;
|
|
|
}
|
|
|
|
|
|
public static float easeOutElastic(float start, float end, float val, float overshoot = 1f, float period = 0.3f)
|
|
|
{
|
|
|
end -= start;
|
|
|
float num = 0f;
|
|
|
float num2 = 0f;
|
|
|
if (val == 0f)
|
|
|
{
|
|
|
return start;
|
|
|
}
|
|
|
if (val == 1f)
|
|
|
{
|
|
|
return start + end;
|
|
|
}
|
|
|
if (num2 == 0f || num2 < Mathf.Abs(end))
|
|
|
{
|
|
|
num2 = end;
|
|
|
num = period / 4f;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
num = period / ((float)Math.PI * 2f) * Mathf.Asin(end / num2);
|
|
|
}
|
|
|
if (overshoot > 1f && val < 0.4f)
|
|
|
{
|
|
|
overshoot = 1f + val / 0.4f * (overshoot - 1f);
|
|
|
}
|
|
|
return start + end + num2 * Mathf.Pow(2f, -10f * val) * Mathf.Sin((val - num) * ((float)Math.PI * 2f) / period) * overshoot;
|
|
|
}
|
|
|
|
|
|
public static float easeInOutElastic(float start, float end, float val, float overshoot = 1f, float period = 0.3f)
|
|
|
{
|
|
|
end -= start;
|
|
|
float num = 0f;
|
|
|
float num2 = 0f;
|
|
|
if (val == 0f)
|
|
|
{
|
|
|
return start;
|
|
|
}
|
|
|
val /= 0.5f;
|
|
|
if (val == 2f)
|
|
|
{
|
|
|
return start + end;
|
|
|
}
|
|
|
if (num2 == 0f || num2 < Mathf.Abs(end))
|
|
|
{
|
|
|
num2 = end;
|
|
|
num = period / 4f;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
num = period / ((float)Math.PI * 2f) * Mathf.Asin(end / num2);
|
|
|
}
|
|
|
if (overshoot > 1f)
|
|
|
{
|
|
|
if (val < 0.2f)
|
|
|
{
|
|
|
overshoot = 1f + val / 0.2f * (overshoot - 1f);
|
|
|
}
|
|
|
else if (val > 0.8f)
|
|
|
{
|
|
|
overshoot = 1f + (1f - val) / 0.2f * (overshoot - 1f);
|
|
|
}
|
|
|
}
|
|
|
if (val < 1f)
|
|
|
{
|
|
|
val -= 1f;
|
|
|
return start - 0.5f * (num2 * Mathf.Pow(2f, 10f * val) * Mathf.Sin((val - num) * ((float)Math.PI * 2f) / period)) * overshoot;
|
|
|
}
|
|
|
val -= 1f;
|
|
|
return end + start + num2 * Mathf.Pow(2f, -10f * val) * Mathf.Sin((val - num) * ((float)Math.PI * 2f) / period) * 0.5f * overshoot;
|
|
|
}
|
|
|
|
|
|
public static void addListener(int eventId, Action<LTEvent> callback)
|
|
|
{
|
|
|
addListener(tweenEmpty, eventId, callback);
|
|
|
}
|
|
|
|
|
|
public static void addListener(GameObject caller, int eventId, Action<LTEvent> callback)
|
|
|
{
|
|
|
if (eventListeners == null)
|
|
|
{
|
|
|
INIT_LISTENERS_MAX = LISTENERS_MAX;
|
|
|
eventListeners = new Action<LTEvent>[EVENTS_MAX * LISTENERS_MAX];
|
|
|
goListeners = new GameObject[EVENTS_MAX * LISTENERS_MAX];
|
|
|
}
|
|
|
for (i = 0; i < INIT_LISTENERS_MAX; i++)
|
|
|
{
|
|
|
int num = eventId * INIT_LISTENERS_MAX + i;
|
|
|
if (goListeners[num] == null || eventListeners[num] == null)
|
|
|
{
|
|
|
eventListeners[num] = callback;
|
|
|
goListeners[num] = caller;
|
|
|
if (i >= eventsMaxSearch)
|
|
|
{
|
|
|
eventsMaxSearch = i + 1;
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
if (goListeners[num] == caller && object.Equals(eventListeners[num], callback))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
UnityEngine.Debug.LogError("You ran out of areas to add listeners, consider increasing LISTENERS_MAX, ex: LeanTween.LISTENERS_MAX = " + LISTENERS_MAX * 2);
|
|
|
}
|
|
|
|
|
|
public static bool removeListener(int eventId, Action<LTEvent> callback)
|
|
|
{
|
|
|
return removeListener(tweenEmpty, eventId, callback);
|
|
|
}
|
|
|
|
|
|
public static bool removeListener(int eventId)
|
|
|
{
|
|
|
int num = eventId * INIT_LISTENERS_MAX + i;
|
|
|
eventListeners[num] = null;
|
|
|
goListeners[num] = null;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
public static bool removeListener(GameObject caller, int eventId, Action<LTEvent> callback)
|
|
|
{
|
|
|
for (i = 0; i < eventsMaxSearch; i++)
|
|
|
{
|
|
|
int num = eventId * INIT_LISTENERS_MAX + i;
|
|
|
if (goListeners[num] == caller && object.Equals(eventListeners[num], callback))
|
|
|
{
|
|
|
eventListeners[num] = null;
|
|
|
goListeners[num] = null;
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public static void dispatchEvent(int eventId)
|
|
|
{
|
|
|
dispatchEvent(eventId, null);
|
|
|
}
|
|
|
|
|
|
public static void dispatchEvent(int eventId, object data)
|
|
|
{
|
|
|
for (int i = 0; i < eventsMaxSearch; i++)
|
|
|
{
|
|
|
int num = eventId * INIT_LISTENERS_MAX + i;
|
|
|
if (eventListeners[num] != null)
|
|
|
{
|
|
|
if ((bool)goListeners[num])
|
|
|
{
|
|
|
eventListeners[num](new LTEvent(eventId, data));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
eventListeners[num] = null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|