之前从别的地方copy了这一行代码,我计算了正确的目标位置posleft2,但是material没有按照预想的去动,每次都会跑到一个很奇怪的位置上去。
iTween.MoveTo(material, iTween.Hash("x", posleft2.x,"y", posleft2.y, "easeType", iTween.EaseType.easeOutBounce, "time", 0.7, "loopType", iTween.LoopType.none, "oncomplete", "onMoveComplete1", "oncompletetarget", this.gameObject, "isLocal", false, "isLocal", true,"oncompleteparams", material));
仔细排查各个参数最后发现是这个参数设置导致的 "isLocal", true。表示按照local坐标去缓动。然而传递进来的posleft2是之前计算的ui全局坐标。
改为下面正常了:
iTween.MoveTo(material, iTween.Hash("x", posleft2.x,"y", posleft2.y, "easeType", iTween.EaseType.easeOutBounce, "time", 0.7, "loopType", iTween.LoopType.none, "oncomplete", "onMoveComplete1", "oncompletetarget", this.gameObject, "isLocal", false, "oncompleteparams", material));
带点糊涂的coding是很危险的,一知半解不可取。