예제 #1
0
    public NcEffectBehaviour_B SetSprite(int nNodeIndex, bool bRunImmediate)
    {
        if (m_SpriteList == null || nNodeIndex < 0 || m_SpriteList.Count <= nNodeIndex)
        {
            return(null);
        }

        if (bRunImmediate)
        {
            OnChangingSprite(m_nCurrentIndex, nNodeIndex);
        }
        m_nCurrentIndex = nNodeIndex;

//      if (m_SpriteType == SPRITE_TYPE.NcSpriteAnimation)
        NcSpriteAnimation_B spriteCom = GetComponent <NcSpriteAnimation_B>();

        if (spriteCom != null)
        {
            spriteCom.SetSpriteFactoryIndex(nNodeIndex, false);

            if (bRunImmediate)
            {
                spriteCom.ResetAnimation();
            }
        }
//      if (m_SpriteType == SPRITE_TYPE.NcSpriteTexture)
        NcSpriteTexture_B uvCom = GetComponent <NcSpriteTexture_B>();

        if (uvCom != null)
        {
            uvCom.SetSpriteFactoryIndex(nNodeIndex, -1, false);
            if (bRunImmediate)
            {
//				UpdateUvScale(nNodeIndex, transform);
                CreateEffectObject();
            }
        }

        if (spriteCom != null)
        {
            return(spriteCom);
        }
        if (spriteCom != null)
        {
            return(uvCom);
        }

        return(null);
    }
예제 #2
0
    // 마지막 frame시간 지나면..(다음 loop 첫프레임이 되면), ret가 참이면 애니변경됨
    public bool OnAnimationLastFrame(NcSpriteAnimation_B spriteCom, int nLoopCount)
    {
        if (m_SpriteList.Count <= m_nCurrentIndex)
        {
            return(false);
        }

        m_bEndSprite = true;
//      DestroyEffectObject();

        if (m_bSequenceMode)
        {
            if (m_nCurrentIndex < GetSpriteNodeCount() - 1)
            {
                if ((m_SpriteList[m_nCurrentIndex].m_bLoop ? 3 : 1) == nLoopCount)
                {
                    SetSprite(m_nCurrentIndex + 1);
                    return(true);
                }
            }
            else
            {
                SetSprite(0);
            }
        }
        else
        {
            NcSpriteAnimation_B ncTarSprite = SetSprite(m_SpriteList[m_nCurrentIndex].m_nNextSpriteIndex) as NcSpriteAnimation_B;
            if (ncTarSprite != null)
            {
                ncTarSprite.ResetAnimation();
                return(true);
            }
        }
        return(false);
    }