4688 lines
110 KiB
C#
4688 lines
110 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class iTween : MonoBehaviour
|
|
{
|
|
private delegate float EasingFunction(float start, float end, float Value);
|
|
|
|
private delegate void ApplyTween();
|
|
|
|
public enum EaseType
|
|
{
|
|
easeInQuad = 0,
|
|
easeOutQuad = 1,
|
|
easeInOutQuad = 2,
|
|
easeInCubic = 3,
|
|
easeOutCubic = 4,
|
|
easeInOutCubic = 5,
|
|
easeInQuart = 6,
|
|
easeOutQuart = 7,
|
|
easeInOutQuart = 8,
|
|
easeInQuint = 9,
|
|
easeOutQuint = 10,
|
|
easeInOutQuint = 11,
|
|
easeInSine = 12,
|
|
easeOutSine = 13,
|
|
easeInOutSine = 14,
|
|
easeInExpo = 15,
|
|
easeOutExpo = 16,
|
|
easeInOutExpo = 17,
|
|
easeInCirc = 18,
|
|
easeOutCirc = 19,
|
|
easeInOutCirc = 20,
|
|
linear = 21,
|
|
spring = 22,
|
|
easeInBounce = 23,
|
|
easeOutBounce = 24,
|
|
easeInOutBounce = 25,
|
|
easeInBack = 26,
|
|
easeOutBack = 27,
|
|
easeInOutBack = 28,
|
|
easeInElastic = 29,
|
|
easeOutElastic = 30,
|
|
easeInOutElastic = 31,
|
|
punch = 32
|
|
}
|
|
|
|
public enum LoopType
|
|
{
|
|
none = 0,
|
|
loop = 1,
|
|
pingPong = 2
|
|
}
|
|
|
|
public enum NamedValueColor
|
|
{
|
|
_Color = 0,
|
|
_SpecColor = 1,
|
|
_Emission = 2,
|
|
_ReflectColor = 3
|
|
}
|
|
|
|
public static class Defaults
|
|
{
|
|
public static float time = 1f;
|
|
|
|
public static float delay = 0f;
|
|
|
|
public static NamedValueColor namedColorValue = NamedValueColor._Color;
|
|
|
|
public static LoopType loopType = LoopType.none;
|
|
|
|
public static EaseType easeType = EaseType.easeOutExpo;
|
|
|
|
public static float lookSpeed = 3f;
|
|
|
|
public static bool isLocal = false;
|
|
|
|
public static Space space = Space.Self;
|
|
|
|
public static bool orientToPath = false;
|
|
|
|
public static Color color = Color.white;
|
|
|
|
public static float updateTimePercentage = 0.05f;
|
|
|
|
public static float updateTime = 1f * updateTimePercentage;
|
|
|
|
public static int cameraFadeDepth = 999999;
|
|
|
|
public static float lookAhead = 0.05f;
|
|
|
|
public static bool useRealTime = false;
|
|
|
|
public static Vector3 up = Vector3.up;
|
|
}
|
|
|
|
private class CRSpline
|
|
{
|
|
public Vector3[] pts;
|
|
|
|
public CRSpline(params Vector3[] pts)
|
|
{
|
|
this.pts = new Vector3[pts.Length];
|
|
Array.Copy(pts, this.pts, pts.Length);
|
|
}
|
|
|
|
public Vector3 Interp(float t)
|
|
{
|
|
int num = pts.Length - 3;
|
|
int num2 = Mathf.Min(Mathf.FloorToInt(t * (float)num), num - 1);
|
|
float num3 = t * (float)num - (float)num2;
|
|
Vector3 vector = pts[num2];
|
|
Vector3 vector2 = pts[num2 + 1];
|
|
Vector3 vector3 = pts[num2 + 2];
|
|
Vector3 vector4 = pts[num2 + 3];
|
|
return 0.5f * ((-vector + 3f * vector2 - 3f * vector3 + vector4) * (num3 * num3 * num3) + (2f * vector - 5f * vector2 + 4f * vector3 - vector4) * (num3 * num3) + (-vector + vector3) * num3 + 2f * vector2);
|
|
}
|
|
}
|
|
|
|
public static List<Hashtable> tweens = new List<Hashtable>();
|
|
|
|
private static GameObject cameraFade;
|
|
|
|
public string id;
|
|
|
|
public string type;
|
|
|
|
public string method;
|
|
|
|
public EaseType easeType;
|
|
|
|
public float time;
|
|
|
|
public float delay;
|
|
|
|
public LoopType loopType;
|
|
|
|
public bool isRunning;
|
|
|
|
public bool isPaused;
|
|
|
|
public string _name;
|
|
|
|
private float runningTime;
|
|
|
|
private float percentage;
|
|
|
|
private float delayStarted;
|
|
|
|
private bool kinematic;
|
|
|
|
private bool isLocal;
|
|
|
|
private bool loop;
|
|
|
|
private bool reverse;
|
|
|
|
private bool wasPaused;
|
|
|
|
private bool physics;
|
|
|
|
private Hashtable tweenArguments;
|
|
|
|
private Space space;
|
|
|
|
private EasingFunction ease;
|
|
|
|
private ApplyTween apply;
|
|
|
|
private AudioSource audioSource;
|
|
|
|
private Vector3[] vector3s;
|
|
|
|
private Vector2[] vector2s;
|
|
|
|
private Color[,] colors;
|
|
|
|
private float[] floats;
|
|
|
|
private Rect[] rects;
|
|
|
|
private CRSpline path;
|
|
|
|
private Vector3 preUpdate;
|
|
|
|
private Vector3 postUpdate;
|
|
|
|
private NamedValueColor namedcolorvalue;
|
|
|
|
private float lastRealTime;
|
|
|
|
private bool useRealTime;
|
|
|
|
private Transform thisTransform;
|
|
|
|
private iTween(Hashtable h)
|
|
{
|
|
tweenArguments = h;
|
|
}
|
|
|
|
public static void Init(GameObject target)
|
|
{
|
|
MoveBy(target, Vector3.zero, 0f);
|
|
}
|
|
|
|
public static void CameraFadeFrom(float amount, float time)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
CameraFadeFrom(Hash("amount", amount, "time", time));
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: You must first add a camera fade object with CameraFadeAdd() before atttempting to use camera fading.");
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeFrom(Hashtable args)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
ColorFrom(cameraFade, args);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: You must first add a camera fade object with CameraFadeAdd() before atttempting to use camera fading.");
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeTo(float amount, float time)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
CameraFadeTo(Hash("amount", amount, "time", time));
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: You must first add a camera fade object with CameraFadeAdd() before atttempting to use camera fading.");
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeTo(Hashtable args)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
ColorTo(cameraFade, args);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: You must first add a camera fade object with CameraFadeAdd() before atttempting to use camera fading.");
|
|
}
|
|
}
|
|
|
|
public static void ValueTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (!args.Contains("onupdate") || !args.Contains("from") || !args.Contains("to"))
|
|
{
|
|
Debug.LogError("iTween Error: ValueTo() requires an 'onupdate' callback function and a 'from' and 'to' property. The supplied 'onupdate' callback must accept a single argument that is the same type as the supplied 'from' and 'to' properties!");
|
|
return;
|
|
}
|
|
args["type"] = "value";
|
|
if (args["from"].GetType() == typeof(Vector2))
|
|
{
|
|
args["method"] = "vector2";
|
|
}
|
|
else if (args["from"].GetType() == typeof(Vector3))
|
|
{
|
|
args["method"] = "vector3";
|
|
}
|
|
else if (args["from"].GetType() == typeof(Rect))
|
|
{
|
|
args["method"] = "rect";
|
|
}
|
|
else if (args["from"].GetType() == typeof(float))
|
|
{
|
|
args["method"] = "float";
|
|
}
|
|
else
|
|
{
|
|
if (args["from"].GetType() != typeof(Color))
|
|
{
|
|
Debug.LogError("iTween Error: ValueTo() only works with interpolating Vector3s, Vector2s, floats, ints, Rects and Colors!");
|
|
return;
|
|
}
|
|
args["method"] = "color";
|
|
}
|
|
if (!args.Contains("easetype"))
|
|
{
|
|
args.Add("easetype", EaseType.linear);
|
|
}
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void FadeFrom(GameObject target, float alpha, float time)
|
|
{
|
|
FadeFrom(target, Hash("alpha", alpha, "time", time));
|
|
}
|
|
|
|
public static void FadeFrom(GameObject target, Hashtable args)
|
|
{
|
|
ColorFrom(target, args);
|
|
}
|
|
|
|
public static void FadeTo(GameObject target, float alpha, float time)
|
|
{
|
|
FadeTo(target, Hash("alpha", alpha, "time", time));
|
|
}
|
|
|
|
public static void FadeTo(GameObject target, Hashtable args)
|
|
{
|
|
ColorTo(target, args);
|
|
}
|
|
|
|
public static void ColorFrom(GameObject target, Color color, float time)
|
|
{
|
|
ColorFrom(target, Hash("color", color, "time", time));
|
|
}
|
|
|
|
public static void ColorFrom(GameObject target, Hashtable args)
|
|
{
|
|
Color color = default(Color);
|
|
Color color2 = default(Color);
|
|
args = CleanArgs(args);
|
|
if (!args.Contains("includechildren") || (bool)args["includechildren"])
|
|
{
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Hashtable hashtable = (Hashtable)args.Clone();
|
|
hashtable["ischild"] = true;
|
|
ColorFrom(item.gameObject, hashtable);
|
|
}
|
|
}
|
|
if (!args.Contains("easetype"))
|
|
{
|
|
args.Add("easetype", EaseType.linear);
|
|
}
|
|
if ((bool)target.GetComponent<GUITexture>())
|
|
{
|
|
color2 = (color = target.GetComponent<GUITexture>().color);
|
|
}
|
|
else if ((bool)target.GetComponent<GUIText>())
|
|
{
|
|
color2 = (color = target.GetComponent<GUIText>().material.color);
|
|
}
|
|
else if ((bool)target.GetComponent<Renderer>())
|
|
{
|
|
color2 = (color = target.GetComponent<Renderer>().material.color);
|
|
}
|
|
else if ((bool)target.GetComponent<Light>())
|
|
{
|
|
color2 = (color = target.GetComponent<Light>().color);
|
|
}
|
|
if (args.Contains("color"))
|
|
{
|
|
color = (Color)args["color"];
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("r"))
|
|
{
|
|
color.r = (float)args["r"];
|
|
}
|
|
if (args.Contains("g"))
|
|
{
|
|
color.g = (float)args["g"];
|
|
}
|
|
if (args.Contains("b"))
|
|
{
|
|
color.b = (float)args["b"];
|
|
}
|
|
if (args.Contains("a"))
|
|
{
|
|
color.a = (float)args["a"];
|
|
}
|
|
}
|
|
if (args.Contains("amount"))
|
|
{
|
|
color.a = (float)args["amount"];
|
|
args.Remove("amount");
|
|
}
|
|
else if (args.Contains("alpha"))
|
|
{
|
|
color.a = (float)args["alpha"];
|
|
args.Remove("alpha");
|
|
}
|
|
if ((bool)target.GetComponent<GUITexture>())
|
|
{
|
|
target.GetComponent<GUITexture>().color = color;
|
|
}
|
|
else if ((bool)target.GetComponent<GUIText>())
|
|
{
|
|
target.GetComponent<GUIText>().material.color = color;
|
|
}
|
|
else if ((bool)target.GetComponent<Renderer>())
|
|
{
|
|
target.GetComponent<Renderer>().material.color = color;
|
|
}
|
|
else if ((bool)target.GetComponent<Light>())
|
|
{
|
|
target.GetComponent<Light>().color = color;
|
|
}
|
|
args["color"] = color2;
|
|
args["type"] = "color";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ColorTo(GameObject target, Color color, float time)
|
|
{
|
|
ColorTo(target, Hash("color", color, "time", time));
|
|
}
|
|
|
|
public static void ColorTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (!args.Contains("includechildren") || (bool)args["includechildren"])
|
|
{
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Hashtable hashtable = (Hashtable)args.Clone();
|
|
hashtable["ischild"] = true;
|
|
ColorTo(item.gameObject, hashtable);
|
|
}
|
|
}
|
|
if (!args.Contains("easetype"))
|
|
{
|
|
args.Add("easetype", EaseType.linear);
|
|
}
|
|
args["type"] = "color";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void AudioFrom(GameObject target, float volume, float pitch, float time)
|
|
{
|
|
AudioFrom(target, Hash("volume", volume, "pitch", pitch, "time", time));
|
|
}
|
|
|
|
public static void AudioFrom(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
AudioSource audioSource;
|
|
if (args.Contains("audiosource"))
|
|
{
|
|
audioSource = (AudioSource)args["audiosource"];
|
|
}
|
|
else
|
|
{
|
|
if (!target.GetComponent<AudioSource>())
|
|
{
|
|
Debug.LogError("iTween Error: AudioFrom requires an AudioSource.");
|
|
return;
|
|
}
|
|
audioSource = target.GetComponent<AudioSource>();
|
|
}
|
|
Vector2 vector = default(Vector2);
|
|
Vector2 vector2 = default(Vector2);
|
|
vector.x = (vector2.x = audioSource.volume);
|
|
vector.y = (vector2.y = audioSource.pitch);
|
|
if (args.Contains("volume"))
|
|
{
|
|
vector2.x = (float)args["volume"];
|
|
}
|
|
if (args.Contains("pitch"))
|
|
{
|
|
vector2.y = (float)args["pitch"];
|
|
}
|
|
audioSource.volume = vector2.x;
|
|
audioSource.pitch = vector2.y;
|
|
args["volume"] = vector.x;
|
|
args["pitch"] = vector.y;
|
|
if (!args.Contains("easetype"))
|
|
{
|
|
args.Add("easetype", EaseType.linear);
|
|
}
|
|
args["type"] = "audio";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void AudioTo(GameObject target, float volume, float pitch, float time)
|
|
{
|
|
AudioTo(target, Hash("volume", volume, "pitch", pitch, "time", time));
|
|
}
|
|
|
|
public static void AudioTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (!args.Contains("easetype"))
|
|
{
|
|
args.Add("easetype", EaseType.linear);
|
|
}
|
|
args["type"] = "audio";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void Stab(GameObject target, AudioClip audioclip, float delay)
|
|
{
|
|
Stab(target, Hash("audioclip", audioclip, "delay", delay));
|
|
}
|
|
|
|
public static void Stab(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "stab";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void LookFrom(GameObject target, Vector3 looktarget, float time)
|
|
{
|
|
LookFrom(target, Hash("looktarget", looktarget, "time", time));
|
|
}
|
|
|
|
public static void LookFrom(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
Vector3 eulerAngles = target.transform.eulerAngles;
|
|
if (args["looktarget"].GetType() == typeof(Transform))
|
|
{
|
|
Transform obj = target.transform;
|
|
Transform target2 = (Transform)args["looktarget"];
|
|
Vector3? vector = (Vector3?)args["up"];
|
|
obj.LookAt(target2, (!vector.HasValue) ? Defaults.up : vector.Value);
|
|
}
|
|
else if (args["looktarget"].GetType() == typeof(Vector3))
|
|
{
|
|
Transform obj2 = target.transform;
|
|
Vector3 worldPosition = (Vector3)args["looktarget"];
|
|
Vector3? vector2 = (Vector3?)args["up"];
|
|
obj2.LookAt(worldPosition, (!vector2.HasValue) ? Defaults.up : vector2.Value);
|
|
}
|
|
if (args.Contains("axis"))
|
|
{
|
|
Vector3 eulerAngles2 = target.transform.eulerAngles;
|
|
switch ((string)args["axis"])
|
|
{
|
|
case "x":
|
|
eulerAngles2.y = eulerAngles.y;
|
|
eulerAngles2.z = eulerAngles.z;
|
|
break;
|
|
case "y":
|
|
eulerAngles2.x = eulerAngles.x;
|
|
eulerAngles2.z = eulerAngles.z;
|
|
break;
|
|
case "z":
|
|
eulerAngles2.x = eulerAngles.x;
|
|
eulerAngles2.y = eulerAngles.y;
|
|
break;
|
|
}
|
|
target.transform.eulerAngles = eulerAngles2;
|
|
}
|
|
args["rotation"] = eulerAngles;
|
|
args["type"] = "rotate";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void LookTo(GameObject target, Vector3 looktarget, float time)
|
|
{
|
|
LookTo(target, Hash("looktarget", looktarget, "time", time));
|
|
}
|
|
|
|
public static void LookTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (args.Contains("looktarget") && args["looktarget"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["looktarget"];
|
|
args["position"] = new Vector3(transform.position.x, transform.position.y, transform.position.z);
|
|
args["rotation"] = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
|
|
}
|
|
args["type"] = "look";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void MoveTo(GameObject target, Vector3 position, float time)
|
|
{
|
|
MoveTo(target, Hash("position", position, "time", time));
|
|
}
|
|
|
|
public static void MoveTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (args.Contains("position") && args["position"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["position"];
|
|
args["position"] = new Vector3(transform.position.x, transform.position.y, transform.position.z);
|
|
args["rotation"] = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
|
|
args["scale"] = new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z);
|
|
}
|
|
args["type"] = "move";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void MoveFrom(GameObject target, Vector3 position, float time)
|
|
{
|
|
MoveFrom(target, Hash("position", position, "time", time));
|
|
}
|
|
|
|
public static void MoveFrom(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
bool flag = ((!args.Contains("islocal")) ? Defaults.isLocal : ((bool)args["islocal"]));
|
|
if (args.Contains("path"))
|
|
{
|
|
Vector3[] array2;
|
|
if (args["path"].GetType() == typeof(Vector3[]))
|
|
{
|
|
Vector3[] array = (Vector3[])args["path"];
|
|
array2 = new Vector3[array.Length];
|
|
Array.Copy(array, array2, array.Length);
|
|
}
|
|
else
|
|
{
|
|
Transform[] array3 = (Transform[])args["path"];
|
|
array2 = new Vector3[array3.Length];
|
|
for (int i = 0; i < array3.Length; i++)
|
|
{
|
|
array2[i] = array3[i].position;
|
|
}
|
|
}
|
|
if (array2[array2.Length - 1] != target.transform.position)
|
|
{
|
|
Vector3[] array4 = new Vector3[array2.Length + 1];
|
|
Array.Copy(array2, array4, array2.Length);
|
|
if (flag)
|
|
{
|
|
array4[array4.Length - 1] = target.transform.localPosition;
|
|
target.transform.localPosition = array4[0];
|
|
}
|
|
else
|
|
{
|
|
array4[array4.Length - 1] = target.transform.position;
|
|
target.transform.position = array4[0];
|
|
}
|
|
args["path"] = array4;
|
|
}
|
|
else
|
|
{
|
|
if (flag)
|
|
{
|
|
target.transform.localPosition = array2[0];
|
|
}
|
|
else
|
|
{
|
|
target.transform.position = array2[0];
|
|
}
|
|
args["path"] = array2;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Vector3 vector2;
|
|
Vector3 vector = ((!flag) ? (vector2 = target.transform.position) : (vector2 = target.transform.localPosition));
|
|
if (args.Contains("position"))
|
|
{
|
|
if (args["position"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["position"];
|
|
vector2 = transform.position;
|
|
}
|
|
else if (args["position"].GetType() == typeof(Vector3))
|
|
{
|
|
vector2 = (Vector3)args["position"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("x"))
|
|
{
|
|
vector2.x = (float)args["x"];
|
|
}
|
|
if (args.Contains("y"))
|
|
{
|
|
vector2.y = (float)args["y"];
|
|
}
|
|
if (args.Contains("z"))
|
|
{
|
|
vector2.z = (float)args["z"];
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
target.transform.localPosition = vector2;
|
|
}
|
|
else
|
|
{
|
|
target.transform.position = vector2;
|
|
}
|
|
args["position"] = vector;
|
|
}
|
|
args["type"] = "move";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void MoveAdd(GameObject target, Vector3 amount, float time)
|
|
{
|
|
MoveAdd(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void MoveAdd(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "move";
|
|
args["method"] = "add";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void MoveBy(GameObject target, Vector3 amount, float time)
|
|
{
|
|
MoveBy(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void MoveBy(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "move";
|
|
args["method"] = "by";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ScaleTo(GameObject target, Vector3 scale, float time)
|
|
{
|
|
ScaleTo(target, Hash("scale", scale, "time", time));
|
|
}
|
|
|
|
public static void ScaleTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (args.Contains("scale") && args["scale"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["scale"];
|
|
args["position"] = new Vector3(transform.position.x, transform.position.y, transform.position.z);
|
|
args["rotation"] = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
|
|
args["scale"] = new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z);
|
|
}
|
|
args["type"] = "scale";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ScaleFrom(GameObject target, Vector3 scale, float time)
|
|
{
|
|
ScaleFrom(target, Hash("scale", scale, "time", time));
|
|
}
|
|
|
|
public static void ScaleFrom(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
Vector3 localScale;
|
|
Vector3 vector = (localScale = target.transform.localScale);
|
|
if (args.Contains("scale"))
|
|
{
|
|
if (args["scale"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["scale"];
|
|
localScale = transform.localScale;
|
|
}
|
|
else if (args["scale"].GetType() == typeof(Vector3))
|
|
{
|
|
localScale = (Vector3)args["scale"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("x"))
|
|
{
|
|
localScale.x = (float)args["x"];
|
|
}
|
|
if (args.Contains("y"))
|
|
{
|
|
localScale.y = (float)args["y"];
|
|
}
|
|
if (args.Contains("z"))
|
|
{
|
|
localScale.z = (float)args["z"];
|
|
}
|
|
}
|
|
target.transform.localScale = localScale;
|
|
args["scale"] = vector;
|
|
args["type"] = "scale";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ScaleAdd(GameObject target, Vector3 amount, float time)
|
|
{
|
|
ScaleAdd(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void ScaleAdd(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "scale";
|
|
args["method"] = "add";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ScaleBy(GameObject target, Vector3 amount, float time)
|
|
{
|
|
ScaleBy(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void ScaleBy(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "scale";
|
|
args["method"] = "by";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void RotateTo(GameObject target, Vector3 rotation, float time)
|
|
{
|
|
RotateTo(target, Hash("rotation", rotation, "time", time));
|
|
}
|
|
|
|
public static void RotateTo(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
if (args.Contains("rotation") && args["rotation"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["rotation"];
|
|
args["position"] = new Vector3(transform.position.x, transform.position.y, transform.position.z);
|
|
args["rotation"] = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
|
|
args["scale"] = new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z);
|
|
}
|
|
args["type"] = "rotate";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void RotateFrom(GameObject target, Vector3 rotation, float time)
|
|
{
|
|
RotateFrom(target, Hash("rotation", rotation, "time", time));
|
|
}
|
|
|
|
public static void RotateFrom(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
bool flag = ((!args.Contains("islocal")) ? Defaults.isLocal : ((bool)args["islocal"]));
|
|
Vector3 vector2;
|
|
Vector3 vector = ((!flag) ? (vector2 = target.transform.eulerAngles) : (vector2 = target.transform.localEulerAngles));
|
|
if (args.Contains("rotation"))
|
|
{
|
|
if (args["rotation"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["rotation"];
|
|
vector2 = transform.eulerAngles;
|
|
}
|
|
else if (args["rotation"].GetType() == typeof(Vector3))
|
|
{
|
|
vector2 = (Vector3)args["rotation"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("x"))
|
|
{
|
|
vector2.x = (float)args["x"];
|
|
}
|
|
if (args.Contains("y"))
|
|
{
|
|
vector2.y = (float)args["y"];
|
|
}
|
|
if (args.Contains("z"))
|
|
{
|
|
vector2.z = (float)args["z"];
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
target.transform.localEulerAngles = vector2;
|
|
}
|
|
else
|
|
{
|
|
target.transform.eulerAngles = vector2;
|
|
}
|
|
args["rotation"] = vector;
|
|
args["type"] = "rotate";
|
|
args["method"] = "to";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void RotateAdd(GameObject target, Vector3 amount, float time)
|
|
{
|
|
RotateAdd(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void RotateAdd(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "rotate";
|
|
args["method"] = "add";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void RotateBy(GameObject target, Vector3 amount, float time)
|
|
{
|
|
RotateBy(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void RotateBy(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "rotate";
|
|
args["method"] = "by";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ShakePosition(GameObject target, Vector3 amount, float time)
|
|
{
|
|
ShakePosition(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void ShakePosition(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "shake";
|
|
args["method"] = "position";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ShakeScale(GameObject target, Vector3 amount, float time)
|
|
{
|
|
ShakeScale(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void ShakeScale(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "shake";
|
|
args["method"] = "scale";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void ShakeRotation(GameObject target, Vector3 amount, float time)
|
|
{
|
|
ShakeRotation(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void ShakeRotation(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "shake";
|
|
args["method"] = "rotation";
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void PunchPosition(GameObject target, Vector3 amount, float time)
|
|
{
|
|
PunchPosition(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void PunchPosition(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "punch";
|
|
args["method"] = "position";
|
|
args["easetype"] = EaseType.punch;
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void PunchRotation(GameObject target, Vector3 amount, float time)
|
|
{
|
|
PunchRotation(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void PunchRotation(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "punch";
|
|
args["method"] = "rotation";
|
|
args["easetype"] = EaseType.punch;
|
|
Launch(target, args);
|
|
}
|
|
|
|
public static void PunchScale(GameObject target, Vector3 amount, float time)
|
|
{
|
|
PunchScale(target, Hash("amount", amount, "time", time));
|
|
}
|
|
|
|
public static void PunchScale(GameObject target, Hashtable args)
|
|
{
|
|
args = CleanArgs(args);
|
|
args["type"] = "punch";
|
|
args["method"] = "scale";
|
|
args["easetype"] = EaseType.punch;
|
|
Launch(target, args);
|
|
}
|
|
|
|
private void GenerateTargets()
|
|
{
|
|
switch (type)
|
|
{
|
|
case "value":
|
|
switch (method)
|
|
{
|
|
case "float":
|
|
GenerateFloatTargets();
|
|
apply = ApplyFloatTargets;
|
|
break;
|
|
case "vector2":
|
|
GenerateVector2Targets();
|
|
apply = ApplyVector2Targets;
|
|
break;
|
|
case "vector3":
|
|
GenerateVector3Targets();
|
|
apply = ApplyVector3Targets;
|
|
break;
|
|
case "color":
|
|
GenerateColorTargets();
|
|
apply = ApplyColorTargets;
|
|
break;
|
|
case "rect":
|
|
GenerateRectTargets();
|
|
apply = ApplyRectTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "color":
|
|
{
|
|
string text2 = method;
|
|
if (text2 != null && text2 == "to")
|
|
{
|
|
GenerateColorToTargets();
|
|
apply = ApplyColorToTargets;
|
|
}
|
|
break;
|
|
}
|
|
case "audio":
|
|
{
|
|
string text3 = method;
|
|
if (text3 != null && text3 == "to")
|
|
{
|
|
GenerateAudioToTargets();
|
|
apply = ApplyAudioToTargets;
|
|
}
|
|
break;
|
|
}
|
|
case "move":
|
|
switch (method)
|
|
{
|
|
case "to":
|
|
if (tweenArguments.Contains("path"))
|
|
{
|
|
GenerateMoveToPathTargets();
|
|
apply = ApplyMoveToPathTargets;
|
|
}
|
|
else
|
|
{
|
|
GenerateMoveToTargets();
|
|
apply = ApplyMoveToTargets;
|
|
}
|
|
break;
|
|
case "by":
|
|
case "add":
|
|
GenerateMoveByTargets();
|
|
apply = ApplyMoveByTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "scale":
|
|
switch (method)
|
|
{
|
|
case "to":
|
|
GenerateScaleToTargets();
|
|
apply = ApplyScaleToTargets;
|
|
break;
|
|
case "by":
|
|
GenerateScaleByTargets();
|
|
apply = ApplyScaleToTargets;
|
|
break;
|
|
case "add":
|
|
GenerateScaleAddTargets();
|
|
apply = ApplyScaleToTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "rotate":
|
|
switch (method)
|
|
{
|
|
case "to":
|
|
GenerateRotateToTargets();
|
|
apply = ApplyRotateToTargets;
|
|
break;
|
|
case "add":
|
|
GenerateRotateAddTargets();
|
|
apply = ApplyRotateAddTargets;
|
|
break;
|
|
case "by":
|
|
GenerateRotateByTargets();
|
|
apply = ApplyRotateAddTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "shake":
|
|
switch (method)
|
|
{
|
|
case "position":
|
|
GenerateShakePositionTargets();
|
|
apply = ApplyShakePositionTargets;
|
|
break;
|
|
case "scale":
|
|
GenerateShakeScaleTargets();
|
|
apply = ApplyShakeScaleTargets;
|
|
break;
|
|
case "rotation":
|
|
GenerateShakeRotationTargets();
|
|
apply = ApplyShakeRotationTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "punch":
|
|
switch (method)
|
|
{
|
|
case "position":
|
|
GeneratePunchPositionTargets();
|
|
apply = ApplyPunchPositionTargets;
|
|
break;
|
|
case "rotation":
|
|
GeneratePunchRotationTargets();
|
|
apply = ApplyPunchRotationTargets;
|
|
break;
|
|
case "scale":
|
|
GeneratePunchScaleTargets();
|
|
apply = ApplyPunchScaleTargets;
|
|
break;
|
|
}
|
|
break;
|
|
case "look":
|
|
{
|
|
string text = method;
|
|
if (text != null && text == "to")
|
|
{
|
|
GenerateLookToTargets();
|
|
apply = ApplyLookToTargets;
|
|
}
|
|
break;
|
|
}
|
|
case "stab":
|
|
GenerateStabTargets();
|
|
apply = ApplyStabTargets;
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void GenerateRectTargets()
|
|
{
|
|
rects = new Rect[3];
|
|
rects[0] = (Rect)tweenArguments["from"];
|
|
rects[1] = (Rect)tweenArguments["to"];
|
|
}
|
|
|
|
private void GenerateColorTargets()
|
|
{
|
|
colors = new Color[1, 3];
|
|
colors[0, 0] = (Color)tweenArguments["from"];
|
|
colors[0, 1] = (Color)tweenArguments["to"];
|
|
}
|
|
|
|
private void GenerateVector3Targets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = (Vector3)tweenArguments["from"];
|
|
vector3s[1] = (Vector3)tweenArguments["to"];
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateVector2Targets()
|
|
{
|
|
vector2s = new Vector2[3];
|
|
vector2s[0] = (Vector2)tweenArguments["from"];
|
|
vector2s[1] = (Vector2)tweenArguments["to"];
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
Vector3 a = new Vector3(vector2s[0].x, vector2s[0].y, 0f);
|
|
Vector3 b = new Vector3(vector2s[1].x, vector2s[1].y, 0f);
|
|
float num = Math.Abs(Vector3.Distance(a, b));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateFloatTargets()
|
|
{
|
|
floats = new float[3];
|
|
floats[0] = (float)tweenArguments["from"];
|
|
floats[1] = (float)tweenArguments["to"];
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(floats[0] - floats[1]);
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateColorToTargets()
|
|
{
|
|
if ((bool)GetComponent<GUITexture>())
|
|
{
|
|
colors = new Color[1, 3];
|
|
colors[0, 0] = (colors[0, 1] = GetComponent<GUITexture>().color);
|
|
}
|
|
else if ((bool)GetComponent<GUIText>())
|
|
{
|
|
colors = new Color[1, 3];
|
|
colors[0, 0] = (colors[0, 1] = GetComponent<GUIText>().material.color);
|
|
}
|
|
else if ((bool)GetComponent<Renderer>())
|
|
{
|
|
colors = new Color[GetComponent<Renderer>().materials.Length, 3];
|
|
for (int i = 0; i < GetComponent<Renderer>().materials.Length; i++)
|
|
{
|
|
colors[i, 0] = GetComponent<Renderer>().materials[i].GetColor(namedcolorvalue.ToString());
|
|
colors[i, 1] = GetComponent<Renderer>().materials[i].GetColor(namedcolorvalue.ToString());
|
|
}
|
|
}
|
|
else if ((bool)GetComponent<Light>())
|
|
{
|
|
colors = new Color[1, 3];
|
|
colors[0, 0] = (colors[0, 1] = GetComponent<Light>().color);
|
|
}
|
|
else
|
|
{
|
|
colors = new Color[1, 3];
|
|
}
|
|
if (tweenArguments.Contains("color"))
|
|
{
|
|
for (int j = 0; j < colors.GetLength(0); j++)
|
|
{
|
|
colors[j, 1] = (Color)tweenArguments["color"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("r"))
|
|
{
|
|
for (int k = 0; k < colors.GetLength(0); k++)
|
|
{
|
|
colors[k, 1].r = (float)tweenArguments["r"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("g"))
|
|
{
|
|
for (int l = 0; l < colors.GetLength(0); l++)
|
|
{
|
|
colors[l, 1].g = (float)tweenArguments["g"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("b"))
|
|
{
|
|
for (int m = 0; m < colors.GetLength(0); m++)
|
|
{
|
|
colors[m, 1].b = (float)tweenArguments["b"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("a"))
|
|
{
|
|
for (int n = 0; n < colors.GetLength(0); n++)
|
|
{
|
|
colors[n, 1].a = (float)tweenArguments["a"];
|
|
}
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
for (int num = 0; num < colors.GetLength(0); num++)
|
|
{
|
|
colors[num, 1].a = (float)tweenArguments["amount"];
|
|
}
|
|
}
|
|
else if (tweenArguments.Contains("alpha"))
|
|
{
|
|
for (int num2 = 0; num2 < colors.GetLength(0); num2++)
|
|
{
|
|
colors[num2, 1].a = (float)tweenArguments["alpha"];
|
|
}
|
|
}
|
|
}
|
|
|
|
private void GenerateAudioToTargets()
|
|
{
|
|
vector2s = new Vector2[3];
|
|
if (tweenArguments.Contains("audiosource"))
|
|
{
|
|
audioSource = (AudioSource)tweenArguments["audiosource"];
|
|
}
|
|
else if ((bool)GetComponent<AudioSource>())
|
|
{
|
|
audioSource = GetComponent<AudioSource>();
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: AudioTo requires an AudioSource.");
|
|
Dispose();
|
|
}
|
|
vector2s[0] = (vector2s[1] = new Vector2(audioSource.volume, audioSource.pitch));
|
|
if (tweenArguments.Contains("volume"))
|
|
{
|
|
vector2s[1].x = (float)tweenArguments["volume"];
|
|
}
|
|
if (tweenArguments.Contains("pitch"))
|
|
{
|
|
vector2s[1].y = (float)tweenArguments["pitch"];
|
|
}
|
|
}
|
|
|
|
private void GenerateStabTargets()
|
|
{
|
|
if (tweenArguments.Contains("audiosource"))
|
|
{
|
|
audioSource = (AudioSource)tweenArguments["audiosource"];
|
|
}
|
|
else if ((bool)GetComponent<AudioSource>())
|
|
{
|
|
audioSource = GetComponent<AudioSource>();
|
|
}
|
|
else
|
|
{
|
|
base.gameObject.AddComponent<AudioSource>();
|
|
audioSource = GetComponent<AudioSource>();
|
|
audioSource.playOnAwake = false;
|
|
}
|
|
audioSource.clip = (AudioClip)tweenArguments["audioclip"];
|
|
if (tweenArguments.Contains("pitch"))
|
|
{
|
|
audioSource.pitch = (float)tweenArguments["pitch"];
|
|
}
|
|
if (tweenArguments.Contains("volume"))
|
|
{
|
|
audioSource.volume = (float)tweenArguments["volume"];
|
|
}
|
|
time = audioSource.clip.length / audioSource.pitch;
|
|
}
|
|
|
|
private void GenerateLookToTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = thisTransform.eulerAngles;
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
if (tweenArguments["looktarget"].GetType() == typeof(Transform))
|
|
{
|
|
Transform obj = thisTransform;
|
|
Transform target = (Transform)tweenArguments["looktarget"];
|
|
Vector3? vector = (Vector3?)tweenArguments["up"];
|
|
obj.LookAt(target, (!vector.HasValue) ? Defaults.up : vector.Value);
|
|
}
|
|
else if (tweenArguments["looktarget"].GetType() == typeof(Vector3))
|
|
{
|
|
Transform obj2 = thisTransform;
|
|
Vector3 worldPosition = (Vector3)tweenArguments["looktarget"];
|
|
Vector3? vector2 = (Vector3?)tweenArguments["up"];
|
|
obj2.LookAt(worldPosition, (!vector2.HasValue) ? Defaults.up : vector2.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: LookTo needs a 'looktarget' property!");
|
|
Dispose();
|
|
}
|
|
vector3s[1] = thisTransform.eulerAngles;
|
|
thisTransform.eulerAngles = vector3s[0];
|
|
if (tweenArguments.Contains("axis"))
|
|
{
|
|
switch ((string)tweenArguments["axis"])
|
|
{
|
|
case "x":
|
|
vector3s[1].y = vector3s[0].y;
|
|
vector3s[1].z = vector3s[0].z;
|
|
break;
|
|
case "y":
|
|
vector3s[1].x = vector3s[0].x;
|
|
vector3s[1].z = vector3s[0].z;
|
|
break;
|
|
case "z":
|
|
vector3s[1].x = vector3s[0].x;
|
|
vector3s[1].y = vector3s[0].y;
|
|
break;
|
|
}
|
|
}
|
|
vector3s[1] = new Vector3(clerp(vector3s[0].x, vector3s[1].x, 1f), clerp(vector3s[0].y, vector3s[1].y, 1f), clerp(vector3s[0].z, vector3s[1].z, 1f));
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateMoveToPathTargets()
|
|
{
|
|
Vector3[] array2;
|
|
if (tweenArguments["path"].GetType() == typeof(Vector3[]))
|
|
{
|
|
Vector3[] array = (Vector3[])tweenArguments["path"];
|
|
if (array.Length == 1)
|
|
{
|
|
Debug.LogError("iTween Error: Attempting a path movement with MoveTo requires an array of more than 1 entry!");
|
|
Dispose();
|
|
}
|
|
array2 = new Vector3[array.Length];
|
|
Array.Copy(array, array2, array.Length);
|
|
}
|
|
else
|
|
{
|
|
Transform[] array3 = (Transform[])tweenArguments["path"];
|
|
if (array3.Length == 1)
|
|
{
|
|
Debug.LogError("iTween Error: Attempting a path movement with MoveTo requires an array of more than 1 entry!");
|
|
Dispose();
|
|
}
|
|
array2 = new Vector3[array3.Length];
|
|
for (int i = 0; i < array3.Length; i++)
|
|
{
|
|
array2[i] = array3[i].position;
|
|
}
|
|
}
|
|
bool flag;
|
|
int num;
|
|
if (thisTransform.position != array2[0])
|
|
{
|
|
if (!tweenArguments.Contains("movetopath") || (bool)tweenArguments["movetopath"])
|
|
{
|
|
flag = true;
|
|
num = 3;
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
num = 2;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
num = 2;
|
|
}
|
|
vector3s = new Vector3[array2.Length + num];
|
|
if (flag)
|
|
{
|
|
vector3s[1] = thisTransform.position;
|
|
num = 2;
|
|
}
|
|
else
|
|
{
|
|
num = 1;
|
|
}
|
|
Array.Copy(array2, 0, vector3s, num, array2.Length);
|
|
vector3s[0] = vector3s[1] + (vector3s[1] - vector3s[2]);
|
|
vector3s[vector3s.Length - 1] = vector3s[vector3s.Length - 2] + (vector3s[vector3s.Length - 2] - vector3s[vector3s.Length - 3]);
|
|
if (vector3s[1] == vector3s[vector3s.Length - 2])
|
|
{
|
|
Vector3[] array4 = new Vector3[vector3s.Length];
|
|
Array.Copy(vector3s, array4, vector3s.Length);
|
|
array4[0] = array4[array4.Length - 3];
|
|
array4[array4.Length - 1] = array4[2];
|
|
vector3s = new Vector3[array4.Length];
|
|
Array.Copy(array4, vector3s, array4.Length);
|
|
}
|
|
path = new CRSpline(vector3s);
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num2 = PathLength(vector3s);
|
|
time = num2 / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateMoveToTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
if (isLocal)
|
|
{
|
|
vector3s[0] = (vector3s[1] = thisTransform.localPosition);
|
|
}
|
|
else
|
|
{
|
|
vector3s[0] = (vector3s[1] = thisTransform.position);
|
|
}
|
|
if (tweenArguments.Contains("position"))
|
|
{
|
|
if (tweenArguments["position"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)tweenArguments["position"];
|
|
vector3s[1] = transform.position;
|
|
}
|
|
else if (tweenArguments["position"].GetType() == typeof(Vector3))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["position"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("orienttopath") && (bool)tweenArguments["orienttopath"])
|
|
{
|
|
tweenArguments["looktarget"] = vector3s[1];
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateMoveByTargets()
|
|
{
|
|
vector3s = new Vector3[6];
|
|
vector3s[4] = thisTransform.eulerAngles;
|
|
vector3s[0] = (vector3s[1] = (vector3s[3] = thisTransform.position));
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = vector3s[0] + (Vector3)tweenArguments["amount"];
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = vector3s[0].x + (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = vector3s[0].y + (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = vector3s[0].z + (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
thisTransform.Translate(vector3s[1], space);
|
|
vector3s[5] = thisTransform.position;
|
|
thisTransform.position = vector3s[0];
|
|
if (tweenArguments.Contains("orienttopath") && (bool)tweenArguments["orienttopath"])
|
|
{
|
|
tweenArguments["looktarget"] = vector3s[1];
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateScaleToTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = (vector3s[1] = thisTransform.localScale);
|
|
if (tweenArguments.Contains("scale"))
|
|
{
|
|
if (tweenArguments["scale"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)tweenArguments["scale"];
|
|
vector3s[1] = transform.localScale;
|
|
}
|
|
else if (tweenArguments["scale"].GetType() == typeof(Vector3))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["scale"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateScaleByTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = (vector3s[1] = thisTransform.localScale);
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = Vector3.Scale(vector3s[1], (Vector3)tweenArguments["amount"]);
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x *= (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y *= (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z *= (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateScaleAddTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = (vector3s[1] = thisTransform.localScale);
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] += (Vector3)tweenArguments["amount"];
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x += (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y += (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z += (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateRotateToTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
if (isLocal)
|
|
{
|
|
vector3s[0] = (vector3s[1] = thisTransform.localEulerAngles);
|
|
}
|
|
else
|
|
{
|
|
vector3s[0] = (vector3s[1] = thisTransform.eulerAngles);
|
|
}
|
|
if (tweenArguments.Contains("rotation"))
|
|
{
|
|
if (tweenArguments["rotation"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)tweenArguments["rotation"];
|
|
vector3s[1] = transform.eulerAngles;
|
|
}
|
|
else if (tweenArguments["rotation"].GetType() == typeof(Vector3))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["rotation"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
vector3s[1] = new Vector3(clerp(vector3s[0].x, vector3s[1].x, 1f), clerp(vector3s[0].y, vector3s[1].y, 1f), clerp(vector3s[0].z, vector3s[1].z, 1f));
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateRotateAddTargets()
|
|
{
|
|
vector3s = new Vector3[5];
|
|
vector3s[0] = (vector3s[1] = (vector3s[3] = thisTransform.eulerAngles));
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] += (Vector3)tweenArguments["amount"];
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x += (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y += (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z += (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateRotateByTargets()
|
|
{
|
|
vector3s = new Vector3[4];
|
|
vector3s[0] = (vector3s[1] = (vector3s[3] = thisTransform.eulerAngles));
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] += Vector3.Scale((Vector3)tweenArguments["amount"], new Vector3(360f, 360f, 360f));
|
|
}
|
|
else
|
|
{
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x += 360f * (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y += 360f * (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z += 360f * (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
if (tweenArguments.Contains("speed"))
|
|
{
|
|
float num = Math.Abs(Vector3.Distance(vector3s[0], vector3s[1]));
|
|
time = num / (float)tweenArguments["speed"];
|
|
}
|
|
}
|
|
|
|
private void GenerateShakePositionTargets()
|
|
{
|
|
vector3s = new Vector3[4];
|
|
vector3s[3] = thisTransform.eulerAngles;
|
|
vector3s[0] = thisTransform.position;
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void GenerateShakeScaleTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = thisTransform.localScale;
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void GenerateShakeRotationTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = thisTransform.eulerAngles;
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void GeneratePunchPositionTargets()
|
|
{
|
|
vector3s = new Vector3[5];
|
|
vector3s[4] = thisTransform.eulerAngles;
|
|
vector3s[0] = thisTransform.position;
|
|
vector3s[1] = (vector3s[3] = Vector3.zero);
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void GeneratePunchRotationTargets()
|
|
{
|
|
vector3s = new Vector3[4];
|
|
vector3s[0] = thisTransform.eulerAngles;
|
|
vector3s[1] = (vector3s[3] = Vector3.zero);
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void GeneratePunchScaleTargets()
|
|
{
|
|
vector3s = new Vector3[3];
|
|
vector3s[0] = thisTransform.localScale;
|
|
vector3s[1] = Vector3.zero;
|
|
if (tweenArguments.Contains("amount"))
|
|
{
|
|
vector3s[1] = (Vector3)tweenArguments["amount"];
|
|
return;
|
|
}
|
|
if (tweenArguments.Contains("x"))
|
|
{
|
|
vector3s[1].x = (float)tweenArguments["x"];
|
|
}
|
|
if (tweenArguments.Contains("y"))
|
|
{
|
|
vector3s[1].y = (float)tweenArguments["y"];
|
|
}
|
|
if (tweenArguments.Contains("z"))
|
|
{
|
|
vector3s[1].z = (float)tweenArguments["z"];
|
|
}
|
|
}
|
|
|
|
private void ApplyRectTargets()
|
|
{
|
|
rects[2].x = ease(rects[0].x, rects[1].x, percentage);
|
|
rects[2].y = ease(rects[0].y, rects[1].y, percentage);
|
|
rects[2].width = ease(rects[0].width, rects[1].width, percentage);
|
|
rects[2].height = ease(rects[0].height, rects[1].height, percentage);
|
|
tweenArguments["onupdateparams"] = rects[2];
|
|
if (percentage == 1f)
|
|
{
|
|
tweenArguments["onupdateparams"] = rects[1];
|
|
}
|
|
}
|
|
|
|
private void ApplyColorTargets()
|
|
{
|
|
colors[0, 2].r = ease(colors[0, 0].r, colors[0, 1].r, percentage);
|
|
colors[0, 2].g = ease(colors[0, 0].g, colors[0, 1].g, percentage);
|
|
colors[0, 2].b = ease(colors[0, 0].b, colors[0, 1].b, percentage);
|
|
colors[0, 2].a = ease(colors[0, 0].a, colors[0, 1].a, percentage);
|
|
tweenArguments["onupdateparams"] = colors[0, 2];
|
|
if (percentage == 1f)
|
|
{
|
|
tweenArguments["onupdateparams"] = colors[0, 1];
|
|
}
|
|
}
|
|
|
|
private void ApplyVector3Targets()
|
|
{
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
tweenArguments["onupdateparams"] = vector3s[2];
|
|
if (percentage == 1f)
|
|
{
|
|
tweenArguments["onupdateparams"] = vector3s[1];
|
|
}
|
|
}
|
|
|
|
private void ApplyVector2Targets()
|
|
{
|
|
vector2s[2].x = ease(vector2s[0].x, vector2s[1].x, percentage);
|
|
vector2s[2].y = ease(vector2s[0].y, vector2s[1].y, percentage);
|
|
tweenArguments["onupdateparams"] = vector2s[2];
|
|
if (percentage == 1f)
|
|
{
|
|
tweenArguments["onupdateparams"] = vector2s[1];
|
|
}
|
|
}
|
|
|
|
private void ApplyFloatTargets()
|
|
{
|
|
floats[2] = ease(floats[0], floats[1], percentage);
|
|
tweenArguments["onupdateparams"] = floats[2];
|
|
if (percentage == 1f)
|
|
{
|
|
tweenArguments["onupdateparams"] = floats[1];
|
|
}
|
|
}
|
|
|
|
private void ApplyColorToTargets()
|
|
{
|
|
for (int i = 0; i < colors.GetLength(0); i++)
|
|
{
|
|
colors[i, 2].r = ease(colors[i, 0].r, colors[i, 1].r, percentage);
|
|
colors[i, 2].g = ease(colors[i, 0].g, colors[i, 1].g, percentage);
|
|
colors[i, 2].b = ease(colors[i, 0].b, colors[i, 1].b, percentage);
|
|
colors[i, 2].a = ease(colors[i, 0].a, colors[i, 1].a, percentage);
|
|
}
|
|
if ((bool)GetComponent<GUITexture>())
|
|
{
|
|
GetComponent<GUITexture>().color = colors[0, 2];
|
|
}
|
|
else if ((bool)GetComponent<GUIText>())
|
|
{
|
|
GetComponent<GUIText>().material.color = colors[0, 2];
|
|
}
|
|
else if ((bool)GetComponent<Renderer>())
|
|
{
|
|
for (int j = 0; j < colors.GetLength(0); j++)
|
|
{
|
|
GetComponent<Renderer>().materials[j].SetColor(namedcolorvalue.ToString(), colors[j, 2]);
|
|
}
|
|
}
|
|
else if ((bool)GetComponent<Light>())
|
|
{
|
|
GetComponent<Light>().color = colors[0, 2];
|
|
}
|
|
if (percentage != 1f)
|
|
{
|
|
return;
|
|
}
|
|
if ((bool)GetComponent<GUITexture>())
|
|
{
|
|
GetComponent<GUITexture>().color = colors[0, 1];
|
|
}
|
|
else if ((bool)GetComponent<GUIText>())
|
|
{
|
|
GetComponent<GUIText>().material.color = colors[0, 1];
|
|
}
|
|
else if ((bool)GetComponent<Renderer>())
|
|
{
|
|
for (int k = 0; k < colors.GetLength(0); k++)
|
|
{
|
|
GetComponent<Renderer>().materials[k].SetColor(namedcolorvalue.ToString(), colors[k, 1]);
|
|
}
|
|
}
|
|
else if ((bool)GetComponent<Light>())
|
|
{
|
|
GetComponent<Light>().color = colors[0, 1];
|
|
}
|
|
}
|
|
|
|
private void ApplyAudioToTargets()
|
|
{
|
|
vector2s[2].x = ease(vector2s[0].x, vector2s[1].x, percentage);
|
|
vector2s[2].y = ease(vector2s[0].y, vector2s[1].y, percentage);
|
|
audioSource.volume = vector2s[2].x;
|
|
audioSource.pitch = vector2s[2].y;
|
|
if (percentage == 1f)
|
|
{
|
|
audioSource.volume = vector2s[1].x;
|
|
audioSource.pitch = vector2s[1].y;
|
|
}
|
|
}
|
|
|
|
private void ApplyStabTargets()
|
|
{
|
|
}
|
|
|
|
private void ApplyMoveToPathTargets()
|
|
{
|
|
preUpdate = thisTransform.position;
|
|
float value = ease(0f, 1f, percentage);
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localPosition = path.Interp(Mathf.Clamp(value, 0f, 1f));
|
|
}
|
|
else
|
|
{
|
|
thisTransform.position = path.Interp(Mathf.Clamp(value, 0f, 1f));
|
|
}
|
|
if (tweenArguments.Contains("orienttopath") && (bool)tweenArguments["orienttopath"])
|
|
{
|
|
float num = ((!tweenArguments.Contains("lookahead")) ? Defaults.lookAhead : ((float)tweenArguments["lookahead"]));
|
|
float value2 = ease(0f, 1f, Mathf.Min(1f, percentage + num));
|
|
tweenArguments["looktarget"] = path.Interp(Mathf.Clamp(value2, 0f, 1f));
|
|
}
|
|
postUpdate = thisTransform.position;
|
|
if (physics)
|
|
{
|
|
thisTransform.position = preUpdate;
|
|
GetComponent<Rigidbody>().MovePosition(postUpdate);
|
|
}
|
|
}
|
|
|
|
private void ApplyMoveToTargets()
|
|
{
|
|
preUpdate = thisTransform.position;
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localPosition = vector3s[2];
|
|
}
|
|
else
|
|
{
|
|
thisTransform.position = vector3s[2];
|
|
}
|
|
if (percentage == 1f)
|
|
{
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localPosition = vector3s[1];
|
|
}
|
|
else
|
|
{
|
|
thisTransform.position = vector3s[1];
|
|
}
|
|
}
|
|
postUpdate = thisTransform.position;
|
|
if (physics)
|
|
{
|
|
thisTransform.position = preUpdate;
|
|
GetComponent<Rigidbody>().MovePosition(postUpdate);
|
|
}
|
|
}
|
|
|
|
private void ApplyMoveByTargets()
|
|
{
|
|
preUpdate = thisTransform.position;
|
|
Vector3 eulerAngles = default(Vector3);
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
eulerAngles = thisTransform.eulerAngles;
|
|
thisTransform.eulerAngles = vector3s[4];
|
|
}
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
thisTransform.Translate(vector3s[2] - vector3s[3], space);
|
|
vector3s[3] = vector3s[2];
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
thisTransform.eulerAngles = eulerAngles;
|
|
}
|
|
postUpdate = thisTransform.position;
|
|
if (physics)
|
|
{
|
|
thisTransform.position = preUpdate;
|
|
GetComponent<Rigidbody>().MovePosition(postUpdate);
|
|
}
|
|
}
|
|
|
|
private void ApplyScaleToTargets()
|
|
{
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
thisTransform.localScale = vector3s[2];
|
|
if (percentage == 1f)
|
|
{
|
|
thisTransform.localScale = vector3s[1];
|
|
}
|
|
}
|
|
|
|
private void ApplyLookToTargets()
|
|
{
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localRotation = Quaternion.Euler(vector3s[2]);
|
|
}
|
|
else
|
|
{
|
|
thisTransform.rotation = Quaternion.Euler(vector3s[2]);
|
|
}
|
|
}
|
|
|
|
private void ApplyRotateToTargets()
|
|
{
|
|
preUpdate = thisTransform.eulerAngles;
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localRotation = Quaternion.Euler(vector3s[2]);
|
|
}
|
|
else
|
|
{
|
|
thisTransform.rotation = Quaternion.Euler(vector3s[2]);
|
|
}
|
|
if (percentage == 1f)
|
|
{
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localRotation = Quaternion.Euler(vector3s[1]);
|
|
}
|
|
else
|
|
{
|
|
thisTransform.rotation = Quaternion.Euler(vector3s[1]);
|
|
}
|
|
}
|
|
postUpdate = thisTransform.eulerAngles;
|
|
if (physics)
|
|
{
|
|
thisTransform.eulerAngles = preUpdate;
|
|
GetComponent<Rigidbody>().MoveRotation(Quaternion.Euler(postUpdate));
|
|
}
|
|
}
|
|
|
|
private void ApplyRotateAddTargets()
|
|
{
|
|
preUpdate = thisTransform.eulerAngles;
|
|
vector3s[2].x = ease(vector3s[0].x, vector3s[1].x, percentage);
|
|
vector3s[2].y = ease(vector3s[0].y, vector3s[1].y, percentage);
|
|
vector3s[2].z = ease(vector3s[0].z, vector3s[1].z, percentage);
|
|
thisTransform.Rotate(vector3s[2] - vector3s[3], space);
|
|
vector3s[3] = vector3s[2];
|
|
postUpdate = thisTransform.eulerAngles;
|
|
if (physics)
|
|
{
|
|
thisTransform.eulerAngles = preUpdate;
|
|
GetComponent<Rigidbody>().MoveRotation(Quaternion.Euler(postUpdate));
|
|
}
|
|
}
|
|
|
|
private void ApplyShakePositionTargets()
|
|
{
|
|
if (isLocal)
|
|
{
|
|
preUpdate = thisTransform.localPosition;
|
|
}
|
|
else
|
|
{
|
|
preUpdate = thisTransform.position;
|
|
}
|
|
Vector3 eulerAngles = default(Vector3);
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
eulerAngles = thisTransform.eulerAngles;
|
|
thisTransform.eulerAngles = vector3s[3];
|
|
}
|
|
if (percentage == 0f)
|
|
{
|
|
thisTransform.Translate(vector3s[1], space);
|
|
}
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localPosition = vector3s[0];
|
|
}
|
|
else
|
|
{
|
|
thisTransform.position = vector3s[0];
|
|
}
|
|
float num = 1f - percentage;
|
|
vector3s[2].x = UnityEngine.Random.Range((0f - vector3s[1].x) * num, vector3s[1].x * num);
|
|
vector3s[2].y = UnityEngine.Random.Range((0f - vector3s[1].y) * num, vector3s[1].y * num);
|
|
vector3s[2].z = UnityEngine.Random.Range((0f - vector3s[1].z) * num, vector3s[1].z * num);
|
|
if (isLocal)
|
|
{
|
|
thisTransform.localPosition += vector3s[2];
|
|
}
|
|
else
|
|
{
|
|
thisTransform.position += vector3s[2];
|
|
}
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
thisTransform.eulerAngles = eulerAngles;
|
|
}
|
|
postUpdate = thisTransform.position;
|
|
if (physics)
|
|
{
|
|
thisTransform.position = preUpdate;
|
|
GetComponent<Rigidbody>().MovePosition(postUpdate);
|
|
}
|
|
}
|
|
|
|
private void ApplyShakeScaleTargets()
|
|
{
|
|
if (percentage == 0f)
|
|
{
|
|
thisTransform.localScale = vector3s[1];
|
|
}
|
|
thisTransform.localScale = vector3s[0];
|
|
float num = 1f - percentage;
|
|
vector3s[2].x = UnityEngine.Random.Range((0f - vector3s[1].x) * num, vector3s[1].x * num);
|
|
vector3s[2].y = UnityEngine.Random.Range((0f - vector3s[1].y) * num, vector3s[1].y * num);
|
|
vector3s[2].z = UnityEngine.Random.Range((0f - vector3s[1].z) * num, vector3s[1].z * num);
|
|
thisTransform.localScale += vector3s[2];
|
|
}
|
|
|
|
private void ApplyShakeRotationTargets()
|
|
{
|
|
preUpdate = thisTransform.eulerAngles;
|
|
if (percentage == 0f)
|
|
{
|
|
thisTransform.Rotate(vector3s[1], space);
|
|
}
|
|
thisTransform.eulerAngles = vector3s[0];
|
|
float num = 1f - percentage;
|
|
vector3s[2].x = UnityEngine.Random.Range((0f - vector3s[1].x) * num, vector3s[1].x * num);
|
|
vector3s[2].y = UnityEngine.Random.Range((0f - vector3s[1].y) * num, vector3s[1].y * num);
|
|
vector3s[2].z = UnityEngine.Random.Range((0f - vector3s[1].z) * num, vector3s[1].z * num);
|
|
thisTransform.Rotate(vector3s[2], space);
|
|
postUpdate = thisTransform.eulerAngles;
|
|
if (physics)
|
|
{
|
|
thisTransform.eulerAngles = preUpdate;
|
|
GetComponent<Rigidbody>().MoveRotation(Quaternion.Euler(postUpdate));
|
|
}
|
|
}
|
|
|
|
private void ApplyPunchPositionTargets()
|
|
{
|
|
preUpdate = thisTransform.position;
|
|
Vector3 eulerAngles = default(Vector3);
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
eulerAngles = thisTransform.eulerAngles;
|
|
thisTransform.eulerAngles = vector3s[4];
|
|
}
|
|
if (vector3s[1].x > 0f)
|
|
{
|
|
vector3s[2].x = punch(vector3s[1].x, percentage);
|
|
}
|
|
else if (vector3s[1].x < 0f)
|
|
{
|
|
vector3s[2].x = 0f - punch(Mathf.Abs(vector3s[1].x), percentage);
|
|
}
|
|
if (vector3s[1].y > 0f)
|
|
{
|
|
vector3s[2].y = punch(vector3s[1].y, percentage);
|
|
}
|
|
else if (vector3s[1].y < 0f)
|
|
{
|
|
vector3s[2].y = 0f - punch(Mathf.Abs(vector3s[1].y), percentage);
|
|
}
|
|
if (vector3s[1].z > 0f)
|
|
{
|
|
vector3s[2].z = punch(vector3s[1].z, percentage);
|
|
}
|
|
else if (vector3s[1].z < 0f)
|
|
{
|
|
vector3s[2].z = 0f - punch(Mathf.Abs(vector3s[1].z), percentage);
|
|
}
|
|
thisTransform.Translate(vector3s[2] - vector3s[3], space);
|
|
vector3s[3] = vector3s[2];
|
|
if (tweenArguments.Contains("looktarget"))
|
|
{
|
|
thisTransform.eulerAngles = eulerAngles;
|
|
}
|
|
postUpdate = thisTransform.position;
|
|
if (physics)
|
|
{
|
|
thisTransform.position = preUpdate;
|
|
GetComponent<Rigidbody>().MovePosition(postUpdate);
|
|
}
|
|
}
|
|
|
|
private void ApplyPunchRotationTargets()
|
|
{
|
|
preUpdate = thisTransform.eulerAngles;
|
|
if (vector3s[1].x > 0f)
|
|
{
|
|
vector3s[2].x = punch(vector3s[1].x, percentage);
|
|
}
|
|
else if (vector3s[1].x < 0f)
|
|
{
|
|
vector3s[2].x = 0f - punch(Mathf.Abs(vector3s[1].x), percentage);
|
|
}
|
|
if (vector3s[1].y > 0f)
|
|
{
|
|
vector3s[2].y = punch(vector3s[1].y, percentage);
|
|
}
|
|
else if (vector3s[1].y < 0f)
|
|
{
|
|
vector3s[2].y = 0f - punch(Mathf.Abs(vector3s[1].y), percentage);
|
|
}
|
|
if (vector3s[1].z > 0f)
|
|
{
|
|
vector3s[2].z = punch(vector3s[1].z, percentage);
|
|
}
|
|
else if (vector3s[1].z < 0f)
|
|
{
|
|
vector3s[2].z = 0f - punch(Mathf.Abs(vector3s[1].z), percentage);
|
|
}
|
|
thisTransform.Rotate(vector3s[2] - vector3s[3], space);
|
|
vector3s[3] = vector3s[2];
|
|
postUpdate = thisTransform.eulerAngles;
|
|
if (physics)
|
|
{
|
|
thisTransform.eulerAngles = preUpdate;
|
|
GetComponent<Rigidbody>().MoveRotation(Quaternion.Euler(postUpdate));
|
|
}
|
|
}
|
|
|
|
private void ApplyPunchScaleTargets()
|
|
{
|
|
if (vector3s[1].x > 0f)
|
|
{
|
|
vector3s[2].x = punch(vector3s[1].x, percentage);
|
|
}
|
|
else if (vector3s[1].x < 0f)
|
|
{
|
|
vector3s[2].x = 0f - punch(Mathf.Abs(vector3s[1].x), percentage);
|
|
}
|
|
if (vector3s[1].y > 0f)
|
|
{
|
|
vector3s[2].y = punch(vector3s[1].y, percentage);
|
|
}
|
|
else if (vector3s[1].y < 0f)
|
|
{
|
|
vector3s[2].y = 0f - punch(Mathf.Abs(vector3s[1].y), percentage);
|
|
}
|
|
if (vector3s[1].z > 0f)
|
|
{
|
|
vector3s[2].z = punch(vector3s[1].z, percentage);
|
|
}
|
|
else if (vector3s[1].z < 0f)
|
|
{
|
|
vector3s[2].z = 0f - punch(Mathf.Abs(vector3s[1].z), percentage);
|
|
}
|
|
thisTransform.localScale = vector3s[0] + vector3s[2];
|
|
}
|
|
|
|
private IEnumerator TweenDelay()
|
|
{
|
|
delayStarted = Time.time;
|
|
yield return new WaitForSeconds(delay);
|
|
if (wasPaused)
|
|
{
|
|
wasPaused = false;
|
|
TweenStart();
|
|
}
|
|
}
|
|
|
|
private void TweenStart()
|
|
{
|
|
CallBack("onstart");
|
|
if (!loop)
|
|
{
|
|
ConflictCheck();
|
|
GenerateTargets();
|
|
}
|
|
if (type == "stab")
|
|
{
|
|
audioSource.PlayOneShot(audioSource.clip);
|
|
}
|
|
if (type == "move" || type == "scale" || type == "rotate" || type == "punch" || type == "shake" || type == "curve" || type == "look")
|
|
{
|
|
EnableKinematic();
|
|
}
|
|
isRunning = true;
|
|
}
|
|
|
|
private IEnumerator TweenRestart()
|
|
{
|
|
if (delay > 0f)
|
|
{
|
|
delayStarted = Time.time;
|
|
yield return new WaitForSeconds(delay);
|
|
}
|
|
loop = true;
|
|
TweenStart();
|
|
}
|
|
|
|
private void TweenUpdate()
|
|
{
|
|
apply();
|
|
CallBack("onupdate");
|
|
UpdatePercentage();
|
|
}
|
|
|
|
private void TweenComplete()
|
|
{
|
|
isRunning = false;
|
|
if (percentage > 0.5f)
|
|
{
|
|
percentage = 1f;
|
|
}
|
|
else
|
|
{
|
|
percentage = 0f;
|
|
}
|
|
apply();
|
|
if (type == "value")
|
|
{
|
|
CallBack("onupdate");
|
|
}
|
|
if (loopType == LoopType.none)
|
|
{
|
|
Dispose();
|
|
}
|
|
else
|
|
{
|
|
TweenLoop();
|
|
}
|
|
CallBack("oncomplete");
|
|
}
|
|
|
|
private void TweenLoop()
|
|
{
|
|
DisableKinematic();
|
|
switch (loopType)
|
|
{
|
|
case LoopType.loop:
|
|
percentage = 0f;
|
|
runningTime = 0f;
|
|
apply();
|
|
StartCoroutine("TweenRestart");
|
|
break;
|
|
case LoopType.pingPong:
|
|
reverse = !reverse;
|
|
runningTime = 0f;
|
|
StartCoroutine("TweenRestart");
|
|
break;
|
|
}
|
|
}
|
|
|
|
public static Rect RectUpdate(Rect currentValue, Rect targetValue, float speed)
|
|
{
|
|
return new Rect(FloatUpdate(currentValue.x, targetValue.x, speed), FloatUpdate(currentValue.y, targetValue.y, speed), FloatUpdate(currentValue.width, targetValue.width, speed), FloatUpdate(currentValue.height, targetValue.height, speed));
|
|
}
|
|
|
|
public static Vector3 Vector3Update(Vector3 currentValue, Vector3 targetValue, float speed)
|
|
{
|
|
Vector3 vector = targetValue - currentValue;
|
|
currentValue += vector * speed * Time.deltaTime;
|
|
return currentValue;
|
|
}
|
|
|
|
public static Vector2 Vector2Update(Vector2 currentValue, Vector2 targetValue, float speed)
|
|
{
|
|
Vector2 vector = targetValue - currentValue;
|
|
currentValue += vector * speed * Time.deltaTime;
|
|
return currentValue;
|
|
}
|
|
|
|
public static float FloatUpdate(float currentValue, float targetValue, float speed)
|
|
{
|
|
float num = targetValue - currentValue;
|
|
currentValue += num * speed * Time.deltaTime;
|
|
return currentValue;
|
|
}
|
|
|
|
public static void FadeUpdate(GameObject target, Hashtable args)
|
|
{
|
|
args["a"] = args["alpha"];
|
|
ColorUpdate(target, args);
|
|
}
|
|
|
|
public static void FadeUpdate(GameObject target, float alpha, float time)
|
|
{
|
|
FadeUpdate(target, Hash("alpha", alpha, "time", time));
|
|
}
|
|
|
|
public static void ColorUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Color[] array = new Color[4];
|
|
if (!args.Contains("includechildren") || (bool)args["includechildren"])
|
|
{
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
ColorUpdate(item.gameObject, args);
|
|
}
|
|
}
|
|
float num;
|
|
if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
if ((bool)target.GetComponent<GUITexture>())
|
|
{
|
|
array[0] = (array[1] = target.GetComponent<GUITexture>().color);
|
|
}
|
|
else if ((bool)target.GetComponent<GUIText>())
|
|
{
|
|
array[0] = (array[1] = target.GetComponent<GUIText>().material.color);
|
|
}
|
|
else if ((bool)target.GetComponent<Renderer>())
|
|
{
|
|
array[0] = (array[1] = target.GetComponent<Renderer>().material.color);
|
|
}
|
|
else if ((bool)target.GetComponent<Light>())
|
|
{
|
|
array[0] = (array[1] = target.GetComponent<Light>().color);
|
|
}
|
|
if (args.Contains("color"))
|
|
{
|
|
array[1] = (Color)args["color"];
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("r"))
|
|
{
|
|
array[1].r = (float)args["r"];
|
|
}
|
|
if (args.Contains("g"))
|
|
{
|
|
array[1].g = (float)args["g"];
|
|
}
|
|
if (args.Contains("b"))
|
|
{
|
|
array[1].b = (float)args["b"];
|
|
}
|
|
if (args.Contains("a"))
|
|
{
|
|
array[1].a = (float)args["a"];
|
|
}
|
|
}
|
|
array[3].r = Mathf.SmoothDamp(array[0].r, array[1].r, ref array[2].r, num);
|
|
array[3].g = Mathf.SmoothDamp(array[0].g, array[1].g, ref array[2].g, num);
|
|
array[3].b = Mathf.SmoothDamp(array[0].b, array[1].b, ref array[2].b, num);
|
|
array[3].a = Mathf.SmoothDamp(array[0].a, array[1].a, ref array[2].a, num);
|
|
if ((bool)target.GetComponent<GUITexture>())
|
|
{
|
|
target.GetComponent<GUITexture>().color = array[3];
|
|
}
|
|
else if ((bool)target.GetComponent<GUIText>())
|
|
{
|
|
target.GetComponent<GUIText>().material.color = array[3];
|
|
}
|
|
else if ((bool)target.GetComponent<Renderer>())
|
|
{
|
|
target.GetComponent<Renderer>().material.color = array[3];
|
|
}
|
|
else if ((bool)target.GetComponent<Light>())
|
|
{
|
|
target.GetComponent<Light>().color = array[3];
|
|
}
|
|
}
|
|
|
|
public static void ColorUpdate(GameObject target, Color color, float time)
|
|
{
|
|
ColorUpdate(target, Hash("color", color, "time", time));
|
|
}
|
|
|
|
public static void AudioUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Vector2[] array = new Vector2[4];
|
|
float num;
|
|
if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
AudioSource audioSource;
|
|
if (args.Contains("audiosource"))
|
|
{
|
|
audioSource = (AudioSource)args["audiosource"];
|
|
}
|
|
else
|
|
{
|
|
if (!target.GetComponent<AudioSource>())
|
|
{
|
|
Debug.LogError("iTween Error: AudioUpdate requires an AudioSource.");
|
|
return;
|
|
}
|
|
audioSource = target.GetComponent<AudioSource>();
|
|
}
|
|
array[0] = (array[1] = new Vector2(audioSource.volume, audioSource.pitch));
|
|
if (args.Contains("volume"))
|
|
{
|
|
array[1].x = (float)args["volume"];
|
|
}
|
|
if (args.Contains("pitch"))
|
|
{
|
|
array[1].y = (float)args["pitch"];
|
|
}
|
|
array[3].x = Mathf.SmoothDampAngle(array[0].x, array[1].x, ref array[2].x, num);
|
|
array[3].y = Mathf.SmoothDampAngle(array[0].y, array[1].y, ref array[2].y, num);
|
|
audioSource.volume = array[3].x;
|
|
audioSource.pitch = array[3].y;
|
|
}
|
|
|
|
public static void AudioUpdate(GameObject target, float volume, float pitch, float time)
|
|
{
|
|
AudioUpdate(target, Hash("volume", volume, "pitch", pitch, "time", time));
|
|
}
|
|
|
|
public static void RotateUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Vector3[] array = new Vector3[4];
|
|
Vector3 eulerAngles = target.transform.eulerAngles;
|
|
float num;
|
|
if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
bool flag = ((!args.Contains("islocal")) ? Defaults.isLocal : ((bool)args["islocal"]));
|
|
if (flag)
|
|
{
|
|
array[0] = target.transform.localEulerAngles;
|
|
}
|
|
else
|
|
{
|
|
array[0] = target.transform.eulerAngles;
|
|
}
|
|
if (args.Contains("rotation"))
|
|
{
|
|
if (args["rotation"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["rotation"];
|
|
array[1] = transform.eulerAngles;
|
|
}
|
|
else if (args["rotation"].GetType() == typeof(Vector3))
|
|
{
|
|
array[1] = (Vector3)args["rotation"];
|
|
}
|
|
}
|
|
array[3].x = Mathf.SmoothDampAngle(array[0].x, array[1].x, ref array[2].x, num);
|
|
array[3].y = Mathf.SmoothDampAngle(array[0].y, array[1].y, ref array[2].y, num);
|
|
array[3].z = Mathf.SmoothDampAngle(array[0].z, array[1].z, ref array[2].z, num);
|
|
if (flag)
|
|
{
|
|
target.transform.localEulerAngles = array[3];
|
|
}
|
|
else
|
|
{
|
|
target.transform.eulerAngles = array[3];
|
|
}
|
|
if (target.GetComponent<Rigidbody>() != null)
|
|
{
|
|
Vector3 eulerAngles2 = target.transform.eulerAngles;
|
|
target.transform.eulerAngles = eulerAngles;
|
|
target.GetComponent<Rigidbody>().MoveRotation(Quaternion.Euler(eulerAngles2));
|
|
}
|
|
}
|
|
|
|
public static void RotateUpdate(GameObject target, Vector3 rotation, float time)
|
|
{
|
|
RotateUpdate(target, Hash("rotation", rotation, "time", time));
|
|
}
|
|
|
|
public static void ScaleUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Vector3[] array = new Vector3[4];
|
|
float num;
|
|
if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
array[0] = (array[1] = target.transform.localScale);
|
|
if (args.Contains("scale"))
|
|
{
|
|
if (args["scale"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["scale"];
|
|
array[1] = transform.localScale;
|
|
}
|
|
else if (args["scale"].GetType() == typeof(Vector3))
|
|
{
|
|
array[1] = (Vector3)args["scale"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("x"))
|
|
{
|
|
array[1].x = (float)args["x"];
|
|
}
|
|
if (args.Contains("y"))
|
|
{
|
|
array[1].y = (float)args["y"];
|
|
}
|
|
if (args.Contains("z"))
|
|
{
|
|
array[1].z = (float)args["z"];
|
|
}
|
|
}
|
|
array[3].x = Mathf.SmoothDamp(array[0].x, array[1].x, ref array[2].x, num);
|
|
array[3].y = Mathf.SmoothDamp(array[0].y, array[1].y, ref array[2].y, num);
|
|
array[3].z = Mathf.SmoothDamp(array[0].z, array[1].z, ref array[2].z, num);
|
|
target.transform.localScale = array[3];
|
|
}
|
|
|
|
public static void ScaleUpdate(GameObject target, Vector3 scale, float time)
|
|
{
|
|
ScaleUpdate(target, Hash("scale", scale, "time", time));
|
|
}
|
|
|
|
public static void MoveUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Vector3[] array = new Vector3[4];
|
|
Vector3 position = target.transform.position;
|
|
float num;
|
|
if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
bool flag = ((!args.Contains("islocal")) ? Defaults.isLocal : ((bool)args["islocal"]));
|
|
if (flag)
|
|
{
|
|
array[0] = (array[1] = target.transform.localPosition);
|
|
}
|
|
else
|
|
{
|
|
array[0] = (array[1] = target.transform.position);
|
|
}
|
|
if (args.Contains("position"))
|
|
{
|
|
if (args["position"].GetType() == typeof(Transform))
|
|
{
|
|
Transform transform = (Transform)args["position"];
|
|
array[1] = transform.position;
|
|
}
|
|
else if (args["position"].GetType() == typeof(Vector3))
|
|
{
|
|
array[1] = (Vector3)args["position"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Contains("x"))
|
|
{
|
|
array[1].x = (float)args["x"];
|
|
}
|
|
if (args.Contains("y"))
|
|
{
|
|
array[1].y = (float)args["y"];
|
|
}
|
|
if (args.Contains("z"))
|
|
{
|
|
array[1].z = (float)args["z"];
|
|
}
|
|
}
|
|
array[3].x = Mathf.SmoothDamp(array[0].x, array[1].x, ref array[2].x, num);
|
|
array[3].y = Mathf.SmoothDamp(array[0].y, array[1].y, ref array[2].y, num);
|
|
array[3].z = Mathf.SmoothDamp(array[0].z, array[1].z, ref array[2].z, num);
|
|
if (args.Contains("orienttopath") && (bool)args["orienttopath"])
|
|
{
|
|
args["looktarget"] = array[3];
|
|
}
|
|
if (args.Contains("looktarget"))
|
|
{
|
|
LookUpdate(target, args);
|
|
}
|
|
if (flag)
|
|
{
|
|
target.transform.localPosition = array[3];
|
|
}
|
|
else
|
|
{
|
|
target.transform.position = array[3];
|
|
}
|
|
if (target.GetComponent<Rigidbody>() != null)
|
|
{
|
|
Vector3 position2 = target.transform.position;
|
|
target.transform.position = position;
|
|
target.GetComponent<Rigidbody>().MovePosition(position2);
|
|
}
|
|
}
|
|
|
|
public static void MoveUpdate(GameObject target, Vector3 position, float time)
|
|
{
|
|
MoveUpdate(target, Hash("position", position, "time", time));
|
|
}
|
|
|
|
public static void LookUpdate(GameObject target, Hashtable args)
|
|
{
|
|
CleanArgs(args);
|
|
Vector3[] array = new Vector3[5];
|
|
float num;
|
|
if (args.Contains("looktime"))
|
|
{
|
|
num = (float)args["looktime"];
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else if (args.Contains("time"))
|
|
{
|
|
num = (float)args["time"] * 0.15f;
|
|
num *= Defaults.updateTimePercentage;
|
|
}
|
|
else
|
|
{
|
|
num = Defaults.updateTime;
|
|
}
|
|
array[0] = target.transform.eulerAngles;
|
|
if (args.Contains("looktarget"))
|
|
{
|
|
if (args["looktarget"].GetType() == typeof(Transform))
|
|
{
|
|
Transform obj = target.transform;
|
|
Transform target2 = (Transform)args["looktarget"];
|
|
Vector3? vector = (Vector3?)args["up"];
|
|
obj.LookAt(target2, (!vector.HasValue) ? Defaults.up : vector.Value);
|
|
}
|
|
else if (args["looktarget"].GetType() == typeof(Vector3))
|
|
{
|
|
Transform obj2 = target.transform;
|
|
Vector3 worldPosition = (Vector3)args["looktarget"];
|
|
Vector3? vector2 = (Vector3?)args["up"];
|
|
obj2.LookAt(worldPosition, (!vector2.HasValue) ? Defaults.up : vector2.Value);
|
|
}
|
|
array[1] = target.transform.eulerAngles;
|
|
target.transform.eulerAngles = array[0];
|
|
array[3].x = Mathf.SmoothDampAngle(array[0].x, array[1].x, ref array[2].x, num);
|
|
array[3].y = Mathf.SmoothDampAngle(array[0].y, array[1].y, ref array[2].y, num);
|
|
array[3].z = Mathf.SmoothDampAngle(array[0].z, array[1].z, ref array[2].z, num);
|
|
target.transform.eulerAngles = array[3];
|
|
if (args.Contains("axis"))
|
|
{
|
|
array[4] = target.transform.eulerAngles;
|
|
switch ((string)args["axis"])
|
|
{
|
|
case "x":
|
|
array[4].y = array[0].y;
|
|
array[4].z = array[0].z;
|
|
break;
|
|
case "y":
|
|
array[4].x = array[0].x;
|
|
array[4].z = array[0].z;
|
|
break;
|
|
case "z":
|
|
array[4].x = array[0].x;
|
|
array[4].y = array[0].y;
|
|
break;
|
|
}
|
|
target.transform.eulerAngles = array[4];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("iTween Error: LookUpdate needs a 'looktarget' property!");
|
|
}
|
|
}
|
|
|
|
public static void LookUpdate(GameObject target, Vector3 looktarget, float time)
|
|
{
|
|
LookUpdate(target, Hash("looktarget", looktarget, "time", time));
|
|
}
|
|
|
|
public static float PathLength(Transform[] path)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
float num = 0f;
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
Vector3[] pts = PathControlPointGenerator(array);
|
|
Vector3 a = Interp(pts, 0f);
|
|
int num2 = path.Length * 20;
|
|
for (int j = 1; j <= num2; j++)
|
|
{
|
|
float t = (float)j / (float)num2;
|
|
Vector3 vector = Interp(pts, t);
|
|
num += Vector3.Distance(a, vector);
|
|
a = vector;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
public static float PathLength(Vector3[] path)
|
|
{
|
|
float num = 0f;
|
|
Vector3[] pts = PathControlPointGenerator(path);
|
|
Vector3 a = Interp(pts, 0f);
|
|
int num2 = path.Length * 20;
|
|
for (int i = 1; i <= num2; i++)
|
|
{
|
|
float t = (float)i / (float)num2;
|
|
Vector3 vector = Interp(pts, t);
|
|
num += Vector3.Distance(a, vector);
|
|
a = vector;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
public static Texture2D CameraTexture(Color color)
|
|
{
|
|
Texture2D texture2D = new Texture2D(Screen.width, Screen.height, TextureFormat.ARGB32, false);
|
|
Color[] array = new Color[Screen.width * Screen.height];
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
array[i] = color;
|
|
}
|
|
texture2D.SetPixels(array);
|
|
texture2D.Apply();
|
|
return texture2D;
|
|
}
|
|
|
|
public static void PutOnPath(GameObject target, Vector3[] path, float percent)
|
|
{
|
|
target.transform.position = Interp(PathControlPointGenerator(path), percent);
|
|
}
|
|
|
|
public static void PutOnPath(Transform target, Vector3[] path, float percent)
|
|
{
|
|
target.position = Interp(PathControlPointGenerator(path), percent);
|
|
}
|
|
|
|
public static void PutOnPath(GameObject target, Transform[] path, float percent)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
target.transform.position = Interp(PathControlPointGenerator(array), percent);
|
|
}
|
|
|
|
public static void PutOnPath(Transform target, Transform[] path, float percent)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
target.position = Interp(PathControlPointGenerator(array), percent);
|
|
}
|
|
|
|
public static Vector3 PointOnPath(Transform[] path, float percent)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
return Interp(PathControlPointGenerator(array), percent);
|
|
}
|
|
|
|
public static void DrawLine(Vector3[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLine(Vector3[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLine(Transform[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLine(Transform[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineGizmos(Vector3[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineGizmos(Vector3[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineGizmos(Transform[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineGizmos(Transform[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineHandles(Vector3[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, Defaults.color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineHandles(Vector3[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
DrawLineHelper(line, color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineHandles(Transform[] line)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, Defaults.color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawLineHandles(Transform[] line, Color color)
|
|
{
|
|
if (line.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[line.Length];
|
|
for (int i = 0; i < line.Length; i++)
|
|
{
|
|
array[i] = line[i].position;
|
|
}
|
|
DrawLineHelper(array, color, "handles");
|
|
}
|
|
}
|
|
|
|
public static Vector3 PointOnPath(Vector3[] path, float percent)
|
|
{
|
|
return Interp(PathControlPointGenerator(path), percent);
|
|
}
|
|
|
|
public static void DrawPath(Vector3[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPath(Vector3[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPath(Transform[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPath(Transform[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathGizmos(Vector3[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathGizmos(Vector3[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathGizmos(Transform[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, Defaults.color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathGizmos(Transform[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, color, "gizmos");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathHandles(Vector3[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, Defaults.color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathHandles(Vector3[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
DrawPathHelper(path, color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathHandles(Transform[] path)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, Defaults.color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void DrawPathHandles(Transform[] path, Color color)
|
|
{
|
|
if (path.Length > 0)
|
|
{
|
|
Vector3[] array = new Vector3[path.Length];
|
|
for (int i = 0; i < path.Length; i++)
|
|
{
|
|
array[i] = path[i].position;
|
|
}
|
|
DrawPathHelper(array, color, "handles");
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeDepth(int depth)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
cameraFade.transform.position = new Vector3(cameraFade.transform.position.x, cameraFade.transform.position.y, depth);
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeDestroy()
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
UnityEngine.Object.Destroy(cameraFade);
|
|
}
|
|
}
|
|
|
|
public static void CameraFadeSwap(Texture2D texture)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
cameraFade.GetComponent<GUITexture>().texture = texture;
|
|
}
|
|
}
|
|
|
|
public static GameObject CameraFadeAdd(Texture2D texture, int depth)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
return null;
|
|
}
|
|
cameraFade = new GameObject("iTween Camera Fade");
|
|
cameraFade.transform.position = new Vector3(0.5f, 0.5f, depth);
|
|
cameraFade.AddComponent<GUITexture>();
|
|
cameraFade.GetComponent<GUITexture>().texture = texture;
|
|
cameraFade.GetComponent<GUITexture>().color = new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
return cameraFade;
|
|
}
|
|
|
|
public static GameObject CameraFadeAdd(Texture2D texture)
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
return null;
|
|
}
|
|
cameraFade = new GameObject("iTween Camera Fade");
|
|
cameraFade.transform.position = new Vector3(0.5f, 0.5f, Defaults.cameraFadeDepth);
|
|
cameraFade.AddComponent<GUITexture>();
|
|
cameraFade.GetComponent<GUITexture>().texture = texture;
|
|
cameraFade.GetComponent<GUITexture>().color = new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
return cameraFade;
|
|
}
|
|
|
|
public static GameObject CameraFadeAdd()
|
|
{
|
|
if ((bool)cameraFade)
|
|
{
|
|
return null;
|
|
}
|
|
cameraFade = new GameObject("iTween Camera Fade");
|
|
cameraFade.transform.position = new Vector3(0.5f, 0.5f, Defaults.cameraFadeDepth);
|
|
cameraFade.AddComponent<GUITexture>();
|
|
cameraFade.GetComponent<GUITexture>().texture = CameraTexture(Color.black);
|
|
cameraFade.GetComponent<GUITexture>().color = new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
return cameraFade;
|
|
}
|
|
|
|
public static void Resume(GameObject target)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
iTween2.enabled = true;
|
|
}
|
|
}
|
|
|
|
public static void Resume(GameObject target, bool includechildren)
|
|
{
|
|
Resume(target);
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Resume(item.gameObject, true);
|
|
}
|
|
}
|
|
|
|
public static void Resume(GameObject target, string type)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
iTween2.enabled = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void Resume(GameObject target, string type, bool includechildren)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
iTween2.enabled = true;
|
|
}
|
|
}
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Resume(item.gameObject, type, true);
|
|
}
|
|
}
|
|
|
|
public static void Resume()
|
|
{
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject target = (GameObject)hashtable["target"];
|
|
Resume(target);
|
|
}
|
|
}
|
|
|
|
public static void Resume(string type)
|
|
{
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject value = (GameObject)hashtable["target"];
|
|
arrayList.Insert(arrayList.Count, value);
|
|
}
|
|
for (int j = 0; j < arrayList.Count; j++)
|
|
{
|
|
Resume((GameObject)arrayList[j], type);
|
|
}
|
|
}
|
|
|
|
public static void Pause(GameObject target)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
if (iTween2.delay > 0f)
|
|
{
|
|
iTween2.delay -= Time.time - iTween2.delayStarted;
|
|
iTween2.StopCoroutine("TweenDelay");
|
|
}
|
|
iTween2.isPaused = true;
|
|
iTween2.enabled = false;
|
|
}
|
|
}
|
|
|
|
public static void Pause(GameObject target, bool includechildren)
|
|
{
|
|
Pause(target);
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Pause(item.gameObject, true);
|
|
}
|
|
}
|
|
|
|
public static void Pause(GameObject target, string type)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
if (iTween2.delay > 0f)
|
|
{
|
|
iTween2.delay -= Time.time - iTween2.delayStarted;
|
|
iTween2.StopCoroutine("TweenDelay");
|
|
}
|
|
iTween2.isPaused = true;
|
|
iTween2.enabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void Pause(GameObject target, string type, bool includechildren)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
if (iTween2.delay > 0f)
|
|
{
|
|
iTween2.delay -= Time.time - iTween2.delayStarted;
|
|
iTween2.StopCoroutine("TweenDelay");
|
|
}
|
|
iTween2.isPaused = true;
|
|
iTween2.enabled = false;
|
|
}
|
|
}
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Pause(item.gameObject, type, true);
|
|
}
|
|
}
|
|
|
|
public static void Pause()
|
|
{
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject target = (GameObject)hashtable["target"];
|
|
Pause(target);
|
|
}
|
|
}
|
|
|
|
public static void Pause(string type)
|
|
{
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject value = (GameObject)hashtable["target"];
|
|
arrayList.Insert(arrayList.Count, value);
|
|
}
|
|
for (int j = 0; j < arrayList.Count; j++)
|
|
{
|
|
Pause((GameObject)arrayList[j], type);
|
|
}
|
|
}
|
|
|
|
public static int Count()
|
|
{
|
|
return tweens.Count;
|
|
}
|
|
|
|
public static int Count(string type)
|
|
{
|
|
int num = 0;
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
string text = (string)hashtable["type"] + (string)hashtable["method"];
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
public static int Count(GameObject target)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
return components.Length;
|
|
}
|
|
|
|
public static int Count(GameObject target, string type)
|
|
{
|
|
int num = 0;
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
public static void Stop()
|
|
{
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject target = (GameObject)hashtable["target"];
|
|
Stop(target);
|
|
}
|
|
tweens.Clear();
|
|
}
|
|
|
|
public static void Stop(string type)
|
|
{
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject value = (GameObject)hashtable["target"];
|
|
arrayList.Insert(arrayList.Count, value);
|
|
}
|
|
for (int j = 0; j < arrayList.Count; j++)
|
|
{
|
|
Stop((GameObject)arrayList[j], type);
|
|
}
|
|
}
|
|
|
|
public static void StopByName(string name)
|
|
{
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
GameObject value = (GameObject)hashtable["target"];
|
|
arrayList.Insert(arrayList.Count, value);
|
|
}
|
|
for (int j = 0; j < arrayList.Count; j++)
|
|
{
|
|
StopByName((GameObject)arrayList[j], name);
|
|
}
|
|
}
|
|
|
|
public static void Stop(GameObject target)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
iTween2.Dispose();
|
|
}
|
|
}
|
|
|
|
public static void Stop(GameObject target, bool includechildren)
|
|
{
|
|
Stop(target);
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Stop(item.gameObject, true);
|
|
}
|
|
}
|
|
|
|
public static void Stop(GameObject target, string type)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
iTween2.Dispose();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void StopByName(GameObject target, string name)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
if (iTween2._name == name)
|
|
{
|
|
iTween2.Dispose();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void Stop(GameObject target, string type, bool includechildren)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
string text = iTween2.type + iTween2.method;
|
|
text = text.Substring(0, type.Length);
|
|
if (text.ToLower() == type.ToLower())
|
|
{
|
|
iTween2.Dispose();
|
|
}
|
|
}
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
Stop(item.gameObject, type, true);
|
|
}
|
|
}
|
|
|
|
public static void StopByName(GameObject target, string name, bool includechildren)
|
|
{
|
|
Component[] components = target.GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
if (iTween2._name == name)
|
|
{
|
|
iTween2.Dispose();
|
|
}
|
|
}
|
|
if (!includechildren)
|
|
{
|
|
return;
|
|
}
|
|
foreach (Transform item in target.transform)
|
|
{
|
|
StopByName(item.gameObject, name, true);
|
|
}
|
|
}
|
|
|
|
public static Hashtable Hash(params object[] args)
|
|
{
|
|
Hashtable hashtable = new Hashtable(args.Length / 2);
|
|
if (args.Length % 2 != 0)
|
|
{
|
|
Debug.LogError("Tween Error: Hash requires an even number of arguments!");
|
|
return null;
|
|
}
|
|
for (int i = 0; i < args.Length - 1; i += 2)
|
|
{
|
|
hashtable.Add(args[i], args[i + 1]);
|
|
}
|
|
return hashtable;
|
|
}
|
|
|
|
private void Awake()
|
|
{
|
|
thisTransform = base.transform;
|
|
RetrieveArgs();
|
|
lastRealTime = Time.realtimeSinceStartup;
|
|
}
|
|
|
|
private IEnumerator Start()
|
|
{
|
|
if (delay > 0f)
|
|
{
|
|
yield return StartCoroutine("TweenDelay");
|
|
}
|
|
TweenStart();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (!isRunning || physics)
|
|
{
|
|
return;
|
|
}
|
|
if (!reverse)
|
|
{
|
|
if (percentage < 1f)
|
|
{
|
|
TweenUpdate();
|
|
}
|
|
else
|
|
{
|
|
TweenComplete();
|
|
}
|
|
}
|
|
else if (percentage > 0f)
|
|
{
|
|
TweenUpdate();
|
|
}
|
|
else
|
|
{
|
|
TweenComplete();
|
|
}
|
|
}
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
if (!isRunning || !physics)
|
|
{
|
|
return;
|
|
}
|
|
if (!reverse)
|
|
{
|
|
if (percentage < 1f)
|
|
{
|
|
TweenUpdate();
|
|
}
|
|
else
|
|
{
|
|
TweenComplete();
|
|
}
|
|
}
|
|
else if (percentage > 0f)
|
|
{
|
|
TweenUpdate();
|
|
}
|
|
else
|
|
{
|
|
TweenComplete();
|
|
}
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
if (tweenArguments.Contains("looktarget") && isRunning && (type == "move" || type == "shake" || type == "punch"))
|
|
{
|
|
LookUpdate(base.gameObject, tweenArguments);
|
|
}
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
if (isRunning)
|
|
{
|
|
EnableKinematic();
|
|
}
|
|
if (isPaused)
|
|
{
|
|
isPaused = false;
|
|
if (delay > 0f)
|
|
{
|
|
wasPaused = true;
|
|
ResumeDelay();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
DisableKinematic();
|
|
}
|
|
|
|
private static void DrawLineHelper(Vector3[] line, Color color, string method)
|
|
{
|
|
Gizmos.color = color;
|
|
for (int i = 0; i < line.Length - 1; i++)
|
|
{
|
|
if (method == "gizmos")
|
|
{
|
|
Gizmos.DrawLine(line[i], line[i + 1]);
|
|
}
|
|
else if (method == "handles")
|
|
{
|
|
Debug.LogError("iTween Error: Drawing a line with Handles is temporarily disabled because of compatability issues with Unity 2.6!");
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void DrawPathHelper(Vector3[] path, Color color, string method)
|
|
{
|
|
Vector3[] pts = PathControlPointGenerator(path);
|
|
Vector3 to = Interp(pts, 0f);
|
|
Gizmos.color = color;
|
|
int num = path.Length * 20;
|
|
for (int i = 1; i <= num; i++)
|
|
{
|
|
float t = (float)i / (float)num;
|
|
Vector3 vector = Interp(pts, t);
|
|
if (method == "gizmos")
|
|
{
|
|
Gizmos.DrawLine(vector, to);
|
|
}
|
|
else if (method == "handles")
|
|
{
|
|
Debug.LogError("iTween Error: Drawing a path with Handles is temporarily disabled because of compatability issues with Unity 2.6!");
|
|
}
|
|
to = vector;
|
|
}
|
|
}
|
|
|
|
private static Vector3[] PathControlPointGenerator(Vector3[] path)
|
|
{
|
|
int num = 2;
|
|
Vector3[] array = new Vector3[path.Length + num];
|
|
Array.Copy(path, 0, array, 1, path.Length);
|
|
array[0] = array[1] + (array[1] - array[2]);
|
|
array[array.Length - 1] = array[array.Length - 2] + (array[array.Length - 2] - array[array.Length - 3]);
|
|
if (array[1] == array[array.Length - 2])
|
|
{
|
|
Vector3[] array2 = new Vector3[array.Length];
|
|
Array.Copy(array, array2, array.Length);
|
|
array2[0] = array2[array2.Length - 3];
|
|
array2[array2.Length - 1] = array2[2];
|
|
array = new Vector3[array2.Length];
|
|
Array.Copy(array2, array, array2.Length);
|
|
}
|
|
return array;
|
|
}
|
|
|
|
private static Vector3 Interp(Vector3[] pts, float t)
|
|
{
|
|
int num = pts.Length - 3;
|
|
int num2 = Mathf.Min(Mathf.FloorToInt(t * (float)num), num - 1);
|
|
float num3 = t * (float)num - (float)num2;
|
|
Vector3 vector = pts[num2];
|
|
Vector3 vector2 = pts[num2 + 1];
|
|
Vector3 vector3 = pts[num2 + 2];
|
|
Vector3 vector4 = pts[num2 + 3];
|
|
return 0.5f * ((-vector + 3f * vector2 - 3f * vector3 + vector4) * (num3 * num3 * num3) + (2f * vector - 5f * vector2 + 4f * vector3 - vector4) * (num3 * num3) + (-vector + vector3) * num3 + 2f * vector2);
|
|
}
|
|
|
|
private static void Launch(GameObject target, Hashtable args)
|
|
{
|
|
if (!args.Contains("id"))
|
|
{
|
|
args["id"] = GenerateID();
|
|
}
|
|
if (!args.Contains("target"))
|
|
{
|
|
args["target"] = target;
|
|
}
|
|
tweens.Insert(0, args);
|
|
target.AddComponent<iTween>();
|
|
}
|
|
|
|
private static Hashtable CleanArgs(Hashtable args)
|
|
{
|
|
Hashtable hashtable = new Hashtable(args.Count);
|
|
Hashtable hashtable2 = new Hashtable(args.Count);
|
|
foreach (DictionaryEntry arg in args)
|
|
{
|
|
hashtable.Add(arg.Key, arg.Value);
|
|
}
|
|
foreach (DictionaryEntry item in hashtable)
|
|
{
|
|
if (item.Value.GetType() == typeof(int))
|
|
{
|
|
int num = (int)item.Value;
|
|
float num2 = num;
|
|
args[item.Key] = num2;
|
|
}
|
|
if (item.Value.GetType() == typeof(double))
|
|
{
|
|
double num3 = (double)item.Value;
|
|
float num4 = (float)num3;
|
|
args[item.Key] = num4;
|
|
}
|
|
}
|
|
foreach (DictionaryEntry arg2 in args)
|
|
{
|
|
hashtable2.Add(arg2.Key.ToString().ToLower(), arg2.Value);
|
|
}
|
|
args = hashtable2;
|
|
return args;
|
|
}
|
|
|
|
private static string GenerateID()
|
|
{
|
|
return Guid.NewGuid().ToString();
|
|
}
|
|
|
|
private void RetrieveArgs()
|
|
{
|
|
foreach (Hashtable tween in tweens)
|
|
{
|
|
if ((GameObject)tween["target"] == base.gameObject)
|
|
{
|
|
tweenArguments = tween;
|
|
break;
|
|
}
|
|
}
|
|
id = (string)tweenArguments["id"];
|
|
type = (string)tweenArguments["type"];
|
|
_name = (string)tweenArguments["name"];
|
|
method = (string)tweenArguments["method"];
|
|
if (tweenArguments.Contains("time"))
|
|
{
|
|
time = (float)tweenArguments["time"];
|
|
}
|
|
else
|
|
{
|
|
time = Defaults.time;
|
|
}
|
|
if (GetComponent<Rigidbody>() != null)
|
|
{
|
|
physics = true;
|
|
}
|
|
if (tweenArguments.Contains("delay"))
|
|
{
|
|
delay = (float)tweenArguments["delay"];
|
|
}
|
|
else
|
|
{
|
|
delay = Defaults.delay;
|
|
}
|
|
if (tweenArguments.Contains("namedcolorvalue"))
|
|
{
|
|
if (tweenArguments["namedcolorvalue"].GetType() == typeof(NamedValueColor))
|
|
{
|
|
namedcolorvalue = (NamedValueColor)tweenArguments["namedcolorvalue"];
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
namedcolorvalue = (NamedValueColor)Enum.Parse(typeof(NamedValueColor), (string)tweenArguments["namedcolorvalue"], true);
|
|
}
|
|
catch
|
|
{
|
|
Debug.LogWarning("iTween: Unsupported namedcolorvalue supplied! Default will be used.");
|
|
namedcolorvalue = NamedValueColor._Color;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
namedcolorvalue = Defaults.namedColorValue;
|
|
}
|
|
if (tweenArguments.Contains("looptype"))
|
|
{
|
|
if (tweenArguments["looptype"].GetType() == typeof(LoopType))
|
|
{
|
|
loopType = (LoopType)tweenArguments["looptype"];
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
loopType = (LoopType)Enum.Parse(typeof(LoopType), (string)tweenArguments["looptype"], true);
|
|
}
|
|
catch
|
|
{
|
|
Debug.LogWarning("iTween: Unsupported loopType supplied! Default will be used.");
|
|
loopType = LoopType.none;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
loopType = LoopType.none;
|
|
}
|
|
if (tweenArguments.Contains("easetype"))
|
|
{
|
|
if (tweenArguments["easetype"].GetType() == typeof(EaseType))
|
|
{
|
|
easeType = (EaseType)tweenArguments["easetype"];
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
easeType = (EaseType)Enum.Parse(typeof(EaseType), (string)tweenArguments["easetype"], true);
|
|
}
|
|
catch
|
|
{
|
|
Debug.LogWarning("iTween: Unsupported easeType supplied! Default will be used.");
|
|
easeType = Defaults.easeType;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
easeType = Defaults.easeType;
|
|
}
|
|
if (tweenArguments.Contains("space"))
|
|
{
|
|
if (tweenArguments["space"].GetType() == typeof(Space))
|
|
{
|
|
space = (Space)tweenArguments["space"];
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
space = (Space)Enum.Parse(typeof(Space), (string)tweenArguments["space"], true);
|
|
}
|
|
catch
|
|
{
|
|
Debug.LogWarning("iTween: Unsupported space supplied! Default will be used.");
|
|
space = Defaults.space;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
space = Defaults.space;
|
|
}
|
|
if (tweenArguments.Contains("islocal"))
|
|
{
|
|
isLocal = (bool)tweenArguments["islocal"];
|
|
}
|
|
else
|
|
{
|
|
isLocal = Defaults.isLocal;
|
|
}
|
|
if (tweenArguments.Contains("ignoretimescale"))
|
|
{
|
|
useRealTime = (bool)tweenArguments["ignoretimescale"];
|
|
}
|
|
else
|
|
{
|
|
useRealTime = Defaults.useRealTime;
|
|
}
|
|
GetEasingFunction();
|
|
}
|
|
|
|
private void GetEasingFunction()
|
|
{
|
|
switch (easeType)
|
|
{
|
|
case EaseType.easeInQuad:
|
|
ease = easeInQuad;
|
|
break;
|
|
case EaseType.easeOutQuad:
|
|
ease = easeOutQuad;
|
|
break;
|
|
case EaseType.easeInOutQuad:
|
|
ease = easeInOutQuad;
|
|
break;
|
|
case EaseType.easeInCubic:
|
|
ease = easeInCubic;
|
|
break;
|
|
case EaseType.easeOutCubic:
|
|
ease = easeOutCubic;
|
|
break;
|
|
case EaseType.easeInOutCubic:
|
|
ease = easeInOutCubic;
|
|
break;
|
|
case EaseType.easeInQuart:
|
|
ease = easeInQuart;
|
|
break;
|
|
case EaseType.easeOutQuart:
|
|
ease = easeOutQuart;
|
|
break;
|
|
case EaseType.easeInOutQuart:
|
|
ease = easeInOutQuart;
|
|
break;
|
|
case EaseType.easeInQuint:
|
|
ease = easeInQuint;
|
|
break;
|
|
case EaseType.easeOutQuint:
|
|
ease = easeOutQuint;
|
|
break;
|
|
case EaseType.easeInOutQuint:
|
|
ease = easeInOutQuint;
|
|
break;
|
|
case EaseType.easeInSine:
|
|
ease = easeInSine;
|
|
break;
|
|
case EaseType.easeOutSine:
|
|
ease = easeOutSine;
|
|
break;
|
|
case EaseType.easeInOutSine:
|
|
ease = easeInOutSine;
|
|
break;
|
|
case EaseType.easeInExpo:
|
|
ease = easeInExpo;
|
|
break;
|
|
case EaseType.easeOutExpo:
|
|
ease = easeOutExpo;
|
|
break;
|
|
case EaseType.easeInOutExpo:
|
|
ease = easeInOutExpo;
|
|
break;
|
|
case EaseType.easeInCirc:
|
|
ease = easeInCirc;
|
|
break;
|
|
case EaseType.easeOutCirc:
|
|
ease = easeOutCirc;
|
|
break;
|
|
case EaseType.easeInOutCirc:
|
|
ease = easeInOutCirc;
|
|
break;
|
|
case EaseType.linear:
|
|
ease = linear;
|
|
break;
|
|
case EaseType.spring:
|
|
ease = spring;
|
|
break;
|
|
case EaseType.easeInBounce:
|
|
ease = easeInBounce;
|
|
break;
|
|
case EaseType.easeOutBounce:
|
|
ease = easeOutBounce;
|
|
break;
|
|
case EaseType.easeInOutBounce:
|
|
ease = easeInOutBounce;
|
|
break;
|
|
case EaseType.easeInBack:
|
|
ease = easeInBack;
|
|
break;
|
|
case EaseType.easeOutBack:
|
|
ease = easeOutBack;
|
|
break;
|
|
case EaseType.easeInOutBack:
|
|
ease = easeInOutBack;
|
|
break;
|
|
case EaseType.easeInElastic:
|
|
ease = easeInElastic;
|
|
break;
|
|
case EaseType.easeOutElastic:
|
|
ease = easeOutElastic;
|
|
break;
|
|
case EaseType.easeInOutElastic:
|
|
ease = easeInOutElastic;
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void UpdatePercentage()
|
|
{
|
|
if (useRealTime)
|
|
{
|
|
runningTime += Time.realtimeSinceStartup - lastRealTime;
|
|
}
|
|
else
|
|
{
|
|
runningTime += Time.deltaTime;
|
|
}
|
|
if (reverse)
|
|
{
|
|
percentage = 1f - runningTime / time;
|
|
}
|
|
else
|
|
{
|
|
percentage = runningTime / time;
|
|
}
|
|
lastRealTime = Time.realtimeSinceStartup;
|
|
}
|
|
|
|
private void CallBack(string callbackType)
|
|
{
|
|
if (tweenArguments.Contains(callbackType) && !tweenArguments.Contains("ischild"))
|
|
{
|
|
GameObject gameObject = ((!tweenArguments.Contains(callbackType + "target")) ? base.gameObject : ((GameObject)tweenArguments[callbackType + "target"]));
|
|
if (tweenArguments[callbackType].GetType() == typeof(string))
|
|
{
|
|
gameObject.SendMessage((string)tweenArguments[callbackType], tweenArguments[callbackType + "params"], SendMessageOptions.DontRequireReceiver);
|
|
return;
|
|
}
|
|
Debug.LogError("iTween Error: Callback method references must be passed as a String!");
|
|
UnityEngine.Object.Destroy(this);
|
|
}
|
|
}
|
|
|
|
private void Dispose()
|
|
{
|
|
for (int i = 0; i < tweens.Count; i++)
|
|
{
|
|
Hashtable hashtable = tweens[i];
|
|
if ((string)hashtable["id"] == id)
|
|
{
|
|
tweens.RemoveAt(i);
|
|
break;
|
|
}
|
|
}
|
|
UnityEngine.Object.Destroy(this);
|
|
}
|
|
|
|
private void ConflictCheck()
|
|
{
|
|
Component[] components = GetComponents<iTween>();
|
|
Component[] array = components;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
iTween iTween2 = (iTween)array[i];
|
|
if (iTween2.type == "value")
|
|
{
|
|
break;
|
|
}
|
|
if (!iTween2.isRunning || !(iTween2.type == type))
|
|
{
|
|
continue;
|
|
}
|
|
if (iTween2.method != method)
|
|
{
|
|
break;
|
|
}
|
|
if (iTween2.tweenArguments.Count != tweenArguments.Count)
|
|
{
|
|
iTween2.Dispose();
|
|
break;
|
|
}
|
|
foreach (DictionaryEntry tweenArgument in tweenArguments)
|
|
{
|
|
if (!iTween2.tweenArguments.Contains(tweenArgument.Key))
|
|
{
|
|
iTween2.Dispose();
|
|
return;
|
|
}
|
|
if (!iTween2.tweenArguments[tweenArgument.Key].Equals(tweenArguments[tweenArgument.Key]) && (string)tweenArgument.Key != "id")
|
|
{
|
|
iTween2.Dispose();
|
|
return;
|
|
}
|
|
}
|
|
Dispose();
|
|
}
|
|
}
|
|
|
|
private void EnableKinematic()
|
|
{
|
|
}
|
|
|
|
private void DisableKinematic()
|
|
{
|
|
}
|
|
|
|
private void ResumeDelay()
|
|
{
|
|
StartCoroutine("TweenDelay");
|
|
}
|
|
|
|
private float linear(float start, float end, float value)
|
|
{
|
|
return Mathf.Lerp(start, end, value);
|
|
}
|
|
|
|
private float clerp(float start, float end, float value)
|
|
{
|
|
float num = 0f;
|
|
float num2 = 360f;
|
|
float num3 = Mathf.Abs((num2 - num) * 0.5f);
|
|
float num4 = 0f;
|
|
float num5 = 0f;
|
|
if (end - start < 0f - num3)
|
|
{
|
|
num5 = (num2 - start + end) * value;
|
|
return start + num5;
|
|
}
|
|
if (end - start > num3)
|
|
{
|
|
num5 = (0f - (num2 - end + start)) * value;
|
|
return start + num5;
|
|
}
|
|
return start + (end - start) * value;
|
|
}
|
|
|
|
private float spring(float start, float end, float value)
|
|
{
|
|
value = Mathf.Clamp01(value);
|
|
value = (Mathf.Sin(value * (float)Math.PI * (0.2f + 2.5f * value * value * value)) * Mathf.Pow(1f - value, 2.2f) + value) * (1f + 1.2f * (1f - value));
|
|
return start + (end - start) * value;
|
|
}
|
|
|
|
private float easeInQuad(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * value * value + start;
|
|
}
|
|
|
|
private float easeOutQuad(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return (0f - end) * value * (value - 2f) + start;
|
|
}
|
|
|
|
private float easeInOutQuad(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return end * 0.5f * value * value + start;
|
|
}
|
|
value -= 1f;
|
|
return (0f - end) * 0.5f * (value * (value - 2f) - 1f) + start;
|
|
}
|
|
|
|
private float easeInCubic(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * value * value * value + start;
|
|
}
|
|
|
|
private float easeOutCubic(float start, float end, float value)
|
|
{
|
|
value -= 1f;
|
|
end -= start;
|
|
return end * (value * value * value + 1f) + start;
|
|
}
|
|
|
|
private float easeInOutCubic(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return end * 0.5f * value * value * value + start;
|
|
}
|
|
value -= 2f;
|
|
return end * 0.5f * (value * value * value + 2f) + start;
|
|
}
|
|
|
|
private float easeInQuart(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * value * value * value * value + start;
|
|
}
|
|
|
|
private float easeOutQuart(float start, float end, float value)
|
|
{
|
|
value -= 1f;
|
|
end -= start;
|
|
return (0f - end) * (value * value * value * value - 1f) + start;
|
|
}
|
|
|
|
private float easeInOutQuart(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return end * 0.5f * value * value * value * value + start;
|
|
}
|
|
value -= 2f;
|
|
return (0f - end) * 0.5f * (value * value * value * value - 2f) + start;
|
|
}
|
|
|
|
private float easeInQuint(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * value * value * value * value * value + start;
|
|
}
|
|
|
|
private float easeOutQuint(float start, float end, float value)
|
|
{
|
|
value -= 1f;
|
|
end -= start;
|
|
return end * (value * value * value * value * value + 1f) + start;
|
|
}
|
|
|
|
private float easeInOutQuint(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return end * 0.5f * value * value * value * value * value + start;
|
|
}
|
|
value -= 2f;
|
|
return end * 0.5f * (value * value * value * value * value + 2f) + start;
|
|
}
|
|
|
|
private float easeInSine(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return (0f - end) * Mathf.Cos(value * ((float)Math.PI / 2f)) + end + start;
|
|
}
|
|
|
|
private float easeOutSine(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * Mathf.Sin(value * ((float)Math.PI / 2f)) + start;
|
|
}
|
|
|
|
private float easeInOutSine(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return (0f - end) * 0.5f * (Mathf.Cos((float)Math.PI * value) - 1f) + start;
|
|
}
|
|
|
|
private float easeInExpo(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * Mathf.Pow(2f, 10f * (value - 1f)) + start;
|
|
}
|
|
|
|
private float easeOutExpo(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return end * (0f - Mathf.Pow(2f, -10f * value) + 1f) + start;
|
|
}
|
|
|
|
private float easeInOutExpo(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return end * 0.5f * Mathf.Pow(2f, 10f * (value - 1f)) + start;
|
|
}
|
|
value -= 1f;
|
|
return end * 0.5f * (0f - Mathf.Pow(2f, -10f * value) + 2f) + start;
|
|
}
|
|
|
|
private float easeInCirc(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
return (0f - end) * (Mathf.Sqrt(1f - value * value) - 1f) + start;
|
|
}
|
|
|
|
private float easeOutCirc(float start, float end, float value)
|
|
{
|
|
value -= 1f;
|
|
end -= start;
|
|
return end * Mathf.Sqrt(1f - value * value) + start;
|
|
}
|
|
|
|
private float easeInOutCirc(float start, float end, float value)
|
|
{
|
|
value /= 0.5f;
|
|
end -= start;
|
|
if (value < 1f)
|
|
{
|
|
return (0f - end) * 0.5f * (Mathf.Sqrt(1f - value * value) - 1f) + start;
|
|
}
|
|
value -= 2f;
|
|
return end * 0.5f * (Mathf.Sqrt(1f - value * value) + 1f) + start;
|
|
}
|
|
|
|
private float easeInBounce(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
float num = 1f;
|
|
return end - easeOutBounce(0f, end, num - value) + start;
|
|
}
|
|
|
|
private float easeOutBounce(float start, float end, float value)
|
|
{
|
|
value /= 1f;
|
|
end -= start;
|
|
if (value < 0.36363637f)
|
|
{
|
|
return end * (7.5625f * value * value) + start;
|
|
}
|
|
if (value < 0.72727275f)
|
|
{
|
|
value -= 0.54545456f;
|
|
return end * (7.5625f * value * value + 0.75f) + start;
|
|
}
|
|
if ((double)value < 0.9090909090909091)
|
|
{
|
|
value -= 0.8181818f;
|
|
return end * (7.5625f * value * value + 0.9375f) + start;
|
|
}
|
|
value -= 21f / 22f;
|
|
return end * (7.5625f * value * value + 63f / 64f) + start;
|
|
}
|
|
|
|
private float easeInOutBounce(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
float num = 1f;
|
|
if (value < num * 0.5f)
|
|
{
|
|
return easeInBounce(0f, end, value * 2f) * 0.5f + start;
|
|
}
|
|
return easeOutBounce(0f, end, value * 2f - num) * 0.5f + end * 0.5f + start;
|
|
}
|
|
|
|
private float easeInBack(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
value /= 1f;
|
|
float num = 1.70158f;
|
|
return end * value * value * ((num + 1f) * value - num) + start;
|
|
}
|
|
|
|
private float easeOutBack(float start, float end, float value)
|
|
{
|
|
float num = 1.70158f;
|
|
end -= start;
|
|
value -= 1f;
|
|
return end * (value * value * ((num + 1f) * value + num) + 1f) + start;
|
|
}
|
|
|
|
private float easeInOutBack(float start, float end, float value)
|
|
{
|
|
float num = 1.70158f;
|
|
end -= start;
|
|
value /= 0.5f;
|
|
if (value < 1f)
|
|
{
|
|
num *= 1.525f;
|
|
return end * 0.5f * (value * value * ((num + 1f) * value - num)) + start;
|
|
}
|
|
value -= 2f;
|
|
num *= 1.525f;
|
|
return end * 0.5f * (value * value * ((num + 1f) * value + num) + 2f) + start;
|
|
}
|
|
|
|
private float punch(float amplitude, float value)
|
|
{
|
|
float num = 9f;
|
|
if (value == 0f)
|
|
{
|
|
return 0f;
|
|
}
|
|
if (value == 1f)
|
|
{
|
|
return 0f;
|
|
}
|
|
float num2 = 0.3f;
|
|
num = num2 / ((float)Math.PI * 2f) * Mathf.Asin(0f);
|
|
return amplitude * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * 1f - num) * ((float)Math.PI * 2f) / num2);
|
|
}
|
|
|
|
private float easeInElastic(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
float num = 1f;
|
|
float num2 = num * 0.3f;
|
|
float num3 = 0f;
|
|
float num4 = 0f;
|
|
if (value == 0f)
|
|
{
|
|
return start;
|
|
}
|
|
if ((value /= num) == 1f)
|
|
{
|
|
return start + end;
|
|
}
|
|
if (num4 == 0f || num4 < Mathf.Abs(end))
|
|
{
|
|
num4 = end;
|
|
num3 = num2 / 4f;
|
|
}
|
|
else
|
|
{
|
|
num3 = num2 / ((float)Math.PI * 2f) * Mathf.Asin(end / num4);
|
|
}
|
|
return 0f - num4 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num3) * ((float)Math.PI * 2f) / num2) + start;
|
|
}
|
|
|
|
private float easeOutElastic(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
float num = 1f;
|
|
float num2 = num * 0.3f;
|
|
float num3 = 0f;
|
|
float num4 = 0f;
|
|
if (value == 0f)
|
|
{
|
|
return start;
|
|
}
|
|
if ((value /= num) == 1f)
|
|
{
|
|
return start + end;
|
|
}
|
|
if (num4 == 0f || num4 < Mathf.Abs(end))
|
|
{
|
|
num4 = end;
|
|
num3 = num2 * 0.25f;
|
|
}
|
|
else
|
|
{
|
|
num3 = num2 / ((float)Math.PI * 2f) * Mathf.Asin(end / num4);
|
|
}
|
|
return num4 * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * num - num3) * ((float)Math.PI * 2f) / num2) + end + start;
|
|
}
|
|
|
|
private float easeInOutElastic(float start, float end, float value)
|
|
{
|
|
end -= start;
|
|
float num = 1f;
|
|
float num2 = num * 0.3f;
|
|
float num3 = 0f;
|
|
float num4 = 0f;
|
|
if (value == 0f)
|
|
{
|
|
return start;
|
|
}
|
|
if ((value /= num * 0.5f) == 2f)
|
|
{
|
|
return start + end;
|
|
}
|
|
if (num4 == 0f || num4 < Mathf.Abs(end))
|
|
{
|
|
num4 = end;
|
|
num3 = num2 / 4f;
|
|
}
|
|
else
|
|
{
|
|
num3 = num2 / ((float)Math.PI * 2f) * Mathf.Asin(end / num4);
|
|
}
|
|
if (value < 1f)
|
|
{
|
|
return -0.5f * (num4 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num3) * ((float)Math.PI * 2f) / num2)) + start;
|
|
}
|
|
return num4 * Mathf.Pow(2f, -10f * (value -= 1f)) * Mathf.Sin((value * num - num3) * ((float)Math.PI * 2f) / num2) * 0.5f + end + start;
|
|
}
|
|
}
|