/// <summary> /// 更新动画 /// </summary> void updateAnimation(AnimationUtils.TempAnimation ani) { if (ani != null && ani.isPlayed()) { onAnimationPlayed(ani); } }
/// <summary> /// RectTransform移动 /// </summary> void rectTransformMoveTo(Vector2 target, AnimationUtils.TempAnimation ani, float duration) { var ori = rectTransform.anchoredPosition; ani.addCurve(typeof(RectTransform), "m_AnchoredPosition.x", ori.x, target.x, duration); ani.addCurve(typeof(RectTransform), "m_AnchoredPosition.y", ori.y, target.y, duration); }
/// <summary> /// 更新当前动画事件 /// </summary> void updateCurrentEvent(AnimationUtils.TempAnimation ani) { if (ani != null && ani.isPlaying()) { var name = ani.getName(); if (updateEvents.ContainsKey(name)) { updateEvents[name]?.Invoke(); } } }
/// <summary> /// Transform移动 /// </summary> void transformMoveTo(Vector3 target, AnimationUtils.TempAnimation ani, float duration) { var ori = transform.localPosition; ani.addCurve(typeof(Transform), "m_LocalPosition.x", ori.x, target.x, duration); ani.addCurve(typeof(Transform), "m_LocalPosition.y", ori.y, target.y, duration); ani.addCurve(typeof(Transform), "m_LocalPosition.z", ori.z, target.z, duration); }
/// <summary> /// 加入队列 /// </summary> /// <param name="ani"></param> AnimationUtils.TempAnimation enqueueAnimation(AnimationUtils.TempAnimation ani) { foreach (var ani_ in animations) { if (ani_.isClipEquals(ani)) { debugWarning("Adding animation: " + ani.getName() + " failed."); return(ani_); } } animations.AddLast(ani); return(ani); }
/// <summary> /// 动画播放完毕回调 /// </summary> void onAnimationPlayed(AnimationUtils.TempAnimation ani) { //Debug.Log(this.name + " onAnimationPlayed"); var name = ani.getName(); if (updateEvents.ContainsKey("")) { updateEvents[""]?.Invoke(); } else if (endEvents.ContainsKey(name)) { endEvents[name]?.Invoke(); } next(); onNextAnimationPlay(curAni()); }
/// <summary> /// 下一动画播放开始回调 /// </summary> void onNextAnimationPlay(AnimationUtils.TempAnimation ani) { if (ani == null) { return; } var name = ani.getName(); if (updateEvents.ContainsKey("")) { updateEvents[""]?.Invoke(); } else if (changeEvents.ContainsKey(name)) { changeEvents[name]?.Invoke(); } }
public AnimationUtils.TempAnimation addAnimation( AnimationUtils.TempAnimation ani) { debugLog("addAnimation: " + ani.getName()); return(enqueueAnimation(ani)); }