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); }
// 마지막 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); }