public void CleanUpLayers() { foreach(AEClipTemplate clip in clips.ToArray()) { if(clip.anim.transform.parent != transform) { clips.Remove(clip); } } if(clips.Count == 0) { currentClip = null; return; } bool hasDefault = false; foreach(AEClipTemplate clip in clips) { if(clip.defaultClip) { hasDefault = true; } } if(!hasDefault) { clips[0].defaultClip = true; } foreach(AEClipTemplate clip in clips) { clip.anim.PlayOnStart = false; if(!clip.defaultClip) { clip.anim.gameObject.SetActive(false); } else { currentClip = clip; clip.anim.gameObject.SetActive(true); } } }
public void CrossFade(string clip, float time) { if(IsFading) { return; } AEClipTemplate c = GetClipByName(clip); if(c != null) { if(!c.name.Equals(currentClip.name)) { IsFading = true; currentClip.anim.addEventListener(AfterEffectAnimation.FADE_COMPLETE, OnAnimationFadeComplete); currentClip.anim.AnimateOpacity(currentClip.anim.opacity, 0f, time); c.anim.gameObject.SetActive(true); if(c.wrapMode == AEWrapMode.Loop) { c.anim.Loop = true; } else { c.anim.Loop = false; } c.anim.opacity = 0f; c.anim.gameObject.SetActive(true); c.anim.AnimateOpacity(0f, 1f, time); c.anim.GoToAndPlay(0); currentClip = c; } } }
public void SetDefaultClip(AEClipTemplate tpl) { foreach(AEClipTemplate clip in clips) { clip.defaultClip = false; } tpl.defaultClip = true; }
//-------------------------------------- // PUBLIC METHODS //-------------------------------------- public bool RegisterClip(AfterEffectAnimation anim) { bool IsRegisterd = false; foreach(AEClipTemplate clip in clips) { if(clip.anim == anim) { IsRegisterd = true; } } if(!IsRegisterd) { AEClipTemplate tpl = new AEClipTemplate(); tpl.anim = anim; tpl.name = anim.dataFile.name; anim.transform.localPosition = Vector3.zero; if(anim.Loop) { tpl.wrapMode = AEWrapMode.Loop; } else { tpl.wrapMode = AEWrapMode.Once; } anim.PlayOnStart = false; clips.Add(tpl); return true; } else { return false; } }