void OnDestroy() { ClearAnimations(); if (addToMasterList && ZT_SpriteMaster.instance != null) { ZT_SpriteMaster.RemoveSpriteAnim(name); } }
public void Initialize() { if (addToMasterList) { ZT_SpriteMaster.AddSpriteAnim(this); } //Set Sprite Component if (useUnityUiImage && uiImage == null) { uiImage = GetComponent <Image>(); } else if (sp == null) { sp = GetComponent <ZT_Sprite>(); } //if no animations are on this object try to load from resources if (loadAnimations == null || loadAnimations.Length == 0) { loadAnimations = Resources.LoadAll <ZT_SpriteAnimation>(ResourcesDir); } if (loadAnimations == null) { return; } //load each animation. We use the loadAnimations array so we can set in the inspector foreach (ZT_SpriteAnimation anim in loadAnimations) { LoadAnimation(anim); } //release loadanimations array from memory System.Array.Clear(loadAnimations, 0, loadAnimations.Length); loadAnimations = null; initialized = true; }
/** * Static Creation **/ /// <summary> /// warning a sprite gameobject must already exist /// </summary> public static ZT_SpriteAnimator CreateSpriteAnimator(GameObject spriteGameObject, string overrideAnimName, bool setToInitializeOnLoad) { ZT_SpriteAnimator returnAnimObj; if (!Application.isEditor) { returnAnimObj = ZT_SpriteMaster.GetSpriteAnim(spriteGameObject.name); if (returnAnimObj != null) { return(returnAnimObj); } } returnAnimObj = spriteGameObject.AddComponent <ZT_SpriteAnimator>(); returnAnimObj.initializeOnAwake = setToInitializeOnLoad; if (!Application.isEditor && setToInitializeOnLoad) { returnAnimObj.Initialize(); } return(returnAnimObj); }