GetClipIdByName() public method

Resolves an animation clip by name and returns a unique id.
public GetClipIdByName ( string name ) : int
name string Case sensitive clip name, as defined in .
return int
Example #1
0
        public static void AddAnimationToObject(this GameObject target, tk2dSpriteCollectionData spriteCollection, string animationName, List <string> spritePaths, int fps, Vector2 colliderDimensions, Vector2 colliderOffsets, tk2dBaseSprite.Anchor anchor, tk2dSpriteAnimationClip.WrapMode wrapMode, bool isDefaultAnimation = false)
        {
            tk2dSpriteAnimator  animator  = target.GetOrAddComponent <tk2dSpriteAnimator>();
            tk2dSpriteAnimation animation = target.GetOrAddComponent <tk2dSpriteAnimation>();

            animation.clips  = new tk2dSpriteAnimationClip[0];
            animator.Library = animation;

            tk2dSpriteAnimationClip clip = new tk2dSpriteAnimationClip()
            {
                name = animationName, frames = new tk2dSpriteAnimationFrame[0], fps = fps
            };

            List <tk2dSpriteAnimationFrame> frames = new List <tk2dSpriteAnimationFrame>();

            foreach (string path in spritePaths)
            {
                tk2dSpriteCollectionData collection = spriteCollection;
                int frameSpriteId             = SpriteBuilder.AddSpriteToCollection(path, collection);
                tk2dSpriteDefinition frameDef = collection.spriteDefinitions[frameSpriteId];

                frameDef.colliderVertices = new Vector3[] {
                    new Vector3(colliderOffsets.x / 16, colliderOffsets.y / 16, 0f),
                    new Vector3((colliderDimensions.x / 16), (colliderDimensions.y / 16), 0f)
                };

                frameDef.ConstructOffsetsFromAnchor(anchor);
                frames.Add(new tk2dSpriteAnimationFrame {
                    spriteId = frameSpriteId, spriteCollection = collection
                });
            }
            clip.frames     = frames.ToArray();
            clip.wrapMode   = wrapMode;
            animation.clips = animation.clips.Concat(new tk2dSpriteAnimationClip[] { clip }).ToArray();

            if (isDefaultAnimation)
            {
                animator.DefaultClipId     = animation.GetClipIdByName(animationName);
                animator.playAutomatically = true;
            }
        }
Example #2
0
        public override void UseBuff()
        {
            if (m_TabBfEffect.EffectType == (int)BuffEffectType.E_BUFF_EFFECT_TYPE_PARTICLE)
            {
                m_BuffObj      = GameObject.Instantiate(m_ParticleAnimLib) as GameObject;
                m_BuffObj.name = "Buff_" + m_BuffId;
                InitPosition();
            }
            else
            {
                m_BuffObj = new GameObject("Buff_" + m_BuffId);
                InitPosition();
                if (m_BuffAnimLib == null || m_BuffAnimLib.GetClipIdByName(m_TabBfEffect.BuffAnim) == -1)
                {
                    Debug.LogError("Can't play animation! " + m_TabBfEffect.BuffAnim);
                    return;
                }

                m_BuffSprite = tk2dAnimatedSprite.AddComponent(m_BuffObj, m_BuffAnimLib, m_BuffAnimLib.GetClipIdByName(m_TabBfEffect.BuffAnim));
                m_BuffSprite.Play(m_TabBfEffect.BuffAnim);
            }
        }
 /// <summary>
 /// Resolves an animation clip by name and returns a unique id.
 /// This is a convenient alias to <see cref="tk2dSpriteAnimation.GetClipIdByName"/>
 /// </summary>
 /// <returns>
 /// Unique Animation Clip Id.
 /// </returns>
 /// <param name='name'>Case sensitive clip name, as defined in <see cref="tk2dSpriteAnimationClip"/>. </param>
 public int GetClipIdByName(string name)
 {
     return(library ? library.GetClipIdByName(name) : -1);
 }
    /// <summary>
    /// Play the specified clip.
    /// Will restart the clip at clipStartTime if called while the clip is playing.
    /// </summary>
    /// <param name='name'>
    /// Name of clip. Try to cache the animation clip Id and use that instead for performance.
    /// </param>
    public void Play(string name)
    {
        int id = anim?anim.GetClipIdByName(name):-1;

        Play(id);
    }
Example #5
0
        //播放特效
        public override bool Play(BattleCard target)
        {
            m_TargetCard = target;

            if (m_EffectLib == null || m_EffectLib.GetClipIdByName(m_EffectName) == -1)
            {
                Debug.LogError("Can't play effect! " + m_EffectName);
                if (EffectEnd != null)
                {
                    EffectEnd(this, m_TargetCard, 0f);
                }
                return(false);
            }

            GameObject go = new GameObject(m_EffectName);

            go.transform.parent = m_StartPos.parent;
            Vector3 pos = new Vector3(0.0f, 0.0f, -30.0f);

            pos.x = m_StartPos.localPosition.x;
            pos.y = m_StartPos.localPosition.y;
            go.transform.localPosition = pos;

            Vector3 targetScale = m_StartPos.localScale;

            go.transform.localScale = targetScale / 0.63f;
            Vector3 direct = m_DirectionPoint - m_StartPos.transform.localPosition;

            if (direct.x != 0f || direct.y != 0f)
            {
                direct.z        = 0f;
                go.transform.up = direct;
            }
            tk2dAnimatedSprite sprite = tk2dAnimatedSprite.AddComponent(go, m_EffectLib, m_EffectLib.GetClipIdByName(m_EffectName));

            sprite.animationCompleteDelegate += AnimationCompleteHandler;
            sprite.animationEventDelegate    += AnimationUpdateHandler;



            //如果速度不为0,则特效需要飞行,添加iTween事件
            if (m_MoveSpeed > 0f)
            {
                go.AddComponent <iTweenHandler>().ProjectileFlyCompleteHandler = ProjectileFlyCompleteHandler;

                Hashtable args = new Hashtable();
                args.Add("time", m_MoveSpeed);
                args.Add("x", m_EndPos.position.x);
                args.Add("y", m_EndPos.position.y);
                args.Add("looptype", iTween.LoopType.none);
                args.Add("easetype", iTween.EaseType.linear);
                args.Add("oncompletetarget", go);
                args.Add("oncompleteparams", go);
                args.Add("oncomplete", "OnProjectileFlyComplete");
                iTween.MoveTo(go, args);
            }

            //播放
            sprite.Play(m_EffectName);

            m_EffectObj = go;
            return(true);
        }