// 播放StateType类型的所有的UILayerContainer<AnimEntry> public void Play(UILayerContainerType stateType) { for (int i = 0; i < LayerContainerList.Count; i++) { //UILayerContainer<AnimEntry> layerContainer = LayerContainerList[i]; UILayerContainerAnim layerContainer = LayerContainerList[i]; if (layerContainer.Type == stateType && layerContainer.Type != UILayerContainerType.None) { PlayStateAnim(layerContainer); } } }
// 播放某个UILayerContainer<AnimEntry>实例的ChildList //void PlayStateAnim(UILayerContainer<AnimEntry> layerContainer) void PlayStateAnim(UILayerContainerAnim layerContainer) { List <AnimEntry> animEntryList = layerContainer.ChildList; AnimEntry animEntry = animEntryList[0]; if (animEntryList.Count <= 0 || animEntry.tween == null) { return; } animEntry.tween.tweenFactor = 0; animEntry.tween.FromCurrentValue(); animEntry.tween.enabled = true; }
void InitTween() { for (int i = 0; i < LayerContainerList.Count; i++) { //UILayerContainer<AnimEntry> layerContainer = LayerContainerList[i]; UILayerContainerAnim layerContainer = LayerContainerList[i]; for (int j = 0; j < layerContainer.ChildList.Count; j++) { AnimEntry animEntry = layerContainer.ChildList[j]; UIAnimType animType = animEntry.Type; if (animType == UIAnimType.Position) { animEntry.tween = TweenPos.Tween(gameObject, animEntry.Duration, animEntry.To); } if (animType == UIAnimType.Scale) { animEntry.tween = TweenScale.Tween(gameObject, animEntry.Duration, animEntry.To); } if (animType != UIAnimType.None) { animEntry.tween.tweenFactor = 0; animEntry.tween.enabled = false; } /* * // 在这里继续添加其他类型的 */ // 这里就是让ChildList按顺序去播放 if (j > 0) { AnimEntry preAnimEntry = layerContainer.ChildList[j - 1]; AddTweenListener(preAnimEntry, animEntry); } // 添加回调,在最后一个动作回调 if (j == layerContainer.ChildList.Count - 1) { AnimEntry lastAnimEntry = layerContainer.ChildList[j]; AddLastTweenCallback(layerContainer.Type, lastAnimEntry); } } } }