首先是OT包括了_Base , Graphics , Tweening 三个文件夹,
其先我们说说Tweening ,其实就是ITweens的OrtHello版本,非常容易理解,如果只是使用2D移动的话不妨考虑使用这个方法,在代码中是叫做OTTween的
OTTween 接受三个参数1 object owner
Object that will have the 'public' properties we are going to tween.
2 float duration
Duration of this tween.
'Default' Easing function of this tween. ( get using OTEasing )
使用方法:
new OTTween(GetComponent<OTSprite>(), 1f, OTEasing.ElasticOut).
Tween("size", new Vector2(80, 80)).
Tween("tintColor", new Color(0.5f + Random.value * 0.5f, 0.5f + Random.value * 0.5f, 0.5f + Random.value * 0.5f), OTEasing.StrongOut);
在你创建了OTTween之后,你必须用下面的方式使用它们
Tween( string property, object fromValue, object toValue, OTEase easing )
来看看它的重载函数:
Tween(string var, object fromValue, object toValue) 默认的 this.easing = OTEasing.Linear;
Tween(string var, object toValue, OTEase easing, OTEase pongEasing) 后面一个属性是Easing when 'ponging'
Tween(string var, object toValue)
Tween(string var, object toValue, OTEase easing) //可能比较常用的
Tween(string var, object fromValue, object toValue, OTEase easing)
Tween(string var, object fromValue, object toValue, OTEase easing, OTEase pongEasing)
设置基本的属性,和要达到的目标
TweenAdd(string var, object addValue)
TweenAdd(string property, object addValue, OTEase easing )
TweenAdd(string var, object addValue, OTEase easing, OTEase pongEasing)
Wait ( float waitTime )
设置等待时间=,=相当于cocos2d中的CCdelaytime
TweenVar(object fromValue, object toValue, OTEase easing, FieldInfo field, PropertyInfo prop)
某些值的改变,可改变的值为:single,int,double,vector2,vector3 ,color
Stop()
立刻停止某个动作
InitCallBacks(Component target)
{
callBackTargets.Add(target);
}
回调函数的设置
关键是看看Update的工作:
public bool Update(float deltaTime)
{
if (_doStop)
{
_running = false;
return true;
}
if (waitTime>0)
{
waitTime -= Time.deltaTime;
if (waitTime>0) return false;
}
if (vars.Count==0) return false;
_running = true;
time+=deltaTime;
if (time > duration) time = duration;
for (int v=0; v<vars.Count; v++)
{
OTEase easing = this.easing;
if (easings[v] != null)
easing = easings[v];
TweenVar(fromValues[v],toValues[v],easing,fields[v],props[v]);
}
if (time == duration)
{
_running = false;
if (onTweenFinish != null)
onTweenFinish(this);
if (!CallBack("onTweenFinish", new object[] { this }))
CallBack("OnTweenFinish", new object[] { this });
return true;
}
else
return false;
}
好了 大概明白OTTween中的工作机制的了吧 over
OTEasing的类型有:(熟悉缓动效果的肯定比较熟悉)
Linear (默认的easeType)
BackIn, BackOut, BackInOut
BounceIn, BounceOut, BounceInOut
CircIn, CircOut, CircInOut
CubicIn CubicOut, CubicInOut
ElasticIn, ElasticOut, ElasticInOut
ExpoIn, ExpoOut, ExpoInOut
QuadIn, QuadOut, QuadInOut
QuartIn, QuartOut, QuartInOut
QuintIn, QuintOut, QuintInOut
SineIn, SineOut, SineInOut
StrongIn, StrongOut, StrongInOut