00_iTween_总天--iTween解析

全部命令堆方法链接中英对照离线文档

我为了方便就把所有资源都放在了csdn中。

iTween大致工作流程图

 iTween功能块

  看过这两张图之后就应该会对iTween有一个大概的认识,我们知道iTween里面有着大量的静态方法可直接供我们使用。

   A.开始我们直接调用iTween的一个“静态命令”,其内部有三个常见的主要功能。

  1.将你的args键值对序列进行标准化(将Hashtable的键值对...[名都改为小写,数值类型都更改float类型])

  2.根据不同的“静态命令”增加其所必须的参数,如MoveTo(,)就需要检测时是否包含position参数。

  3.根据你调用的“静态命令”确定iTween的重要成员变量:["type"]和["method"],随后就进入了着手阶段--Launch()函数执行。

[Tip]
    iTween的Static Registers块中的方法我叫成了“静态命令”因为更为直观些,确切的说Static Registers块中的方法只包含了如其名字般的功能,
并未包括其为主事件--apply,注册“事件声明”的功能,而真正为其注册的时候实在iTween开始时--执行TweenStart()时检测执行。
    apply为委托类型所以只需要为其注册相应的“事件功能”中的方法即可在iTween的每帧执行中的执行你向实现的功能方法

B.进入着手阶段

  1.iTween会为你之前注册的“静态命令”随机的生成一个id作为该命令的身份证, 和你之前所添加的GameObject参数,一并加入到args中。

  2.将你之前在“静态命令”中所添加的Hashtable参数记录到tweens中

  3.为你的“静态命令”中参数gameobject上添加iTween组件,以进行该游戏对象的管理与控制。

[Tip]
    tweens值为iTween的主参数之一,记录着本次命令中的所有Hashtable参数

C.因为之前为该对象添加了iTween组件,所以就开始执行Unity执行方法块。

void Awake()
{
    thisTransform = transform;
			
	RetrieveArgs();    //记录unity的内部设定
    lastRealTime = Time.realtimeSinceStartup;
}
IEnumerator Start()
{
	if(delay > 0){
			yield return StartCoroutine("TweenDelay");
	}
    /*
     *CallBack()
     *[冲突检测]
     *如果一个新的iTween即将运行,并且是与正在进行中的类型相同的,那么如果新的一个在各个方面都不相同,那么它将破坏先前的,或者如果新的iTween是这样的话,它将破坏新的iTween
     *
     *[注册目标]
     *根据之前设定的["type"]和["method"]参数先为其"初始化对应参数"然后再为主事件apply注册所对应的“事件声明” 
     *
     *[将isRunning主参数设为true]
    */
	TweenStart();    //执行之前提到的TweenStart()方法
}	
void Update()
{
	if(isRunning && !physics){
		if(!reverse){
			if(percentage<1f){
				TweenUpdate();    //“动画步”块
			}else{
				TweenComplete();    //“动画步”块
			}
		}else{
			if(percentage>0){
				TweenUpdate();    //“动画步”块
			}else{
				TweenComplete();    //“动画步”块
			}
		}
	}
}
void FixedUpdate()
void LateUpdate()
void OnEnable()
void OnDisable()

猜你喜欢

转载自blog.csdn.net/f980511/article/details/81260978