protected override void transitContent(bool isIn) { List <UITweener> twList; if (isIn) { twList = transitInTweener; } else { twList = transitOutTweener; } if (needResetBeforeTransit) { resetTransit(isIn); } UITweener longest = null; for (int i = 0; i < twList.Count; i++) { UITweener tw = twList[i]; if (tw == null) { continue; } if (!isIn && !tw.gameObject.activeInHierarchy) { // 如果是出场,但物体已经设置为不可见了,就不再计算它了 continue; } if ((isIn && tw.tweenFactor >= 1) || (!isIn && tw.tweenFactor <= 0)) { continue; } if (longest == null) { longest = tw; } else { if (longest.duration < tw.duration) { longest = tw; } } } if (longest != null) { //LogManager.Log("longest=" + longest); // 最终转场结束,挂接在最长的转场上 longest.AddFinishAction(transitOver, true); } else { // 这说明没找到任何Tween转场,这时需要立刻结束 transitOver(); return; } for (int i = 0; i < twList.Count; i++) { UITweener tw = twList[i]; if (tw == null) { continue; } if (!isIn && !tw.gameObject.activeSelf) { // 如果是出场,但物体已经设置为不可见了,就不再计算它了 continue; } tw.ignoreTimeScale = false; //LogManager.Log("play tw" + tw); // 播放每一个变换 tw.Play(isIn); } }