コード例 #1
0
        internal void DetachSprite(int idx)
        {
            int lastIdx = activePrimitiveCount - 1;

            SpriteTransform tmpSprTransform = spriteTransforms[idx];

            if (tmpSprTransform.overrideSprite != null)
            {
                OverrideSprite os = new OverrideSprite();

                os.pathHash = spriteTransforms[idx].component._fullPathHash;
                os.sprite   = spriteTransforms[idx].overrideSprite;
                overrideList.Add(os);
            }

            tmpSprTransform.overrideHash   = 0;
            tmpSprTransform.overrideSprite = null;

            if (lastIdx != idx)
            {
                SpritePrimitive tmpPri = primitives[idx];

                spriteTransforms[idx]    = spriteTransforms[lastIdx];
                spriteTransforms[idx].id = idx;
                primitives[idx]          = primitives[lastIdx];

                tmpSprTransform.id = lastIdx;

                spriteTransforms[lastIdx] = tmpSprTransform;
                primitives[lastIdx]       = tmpPri;
            }

            activePrimitiveCount--;
            _activePrimitiveCount.value = activePrimitiveCount;
        }
コード例 #2
0
        internal void DetachSprite( int idx )
        {
            int lastIdx = activePrimitiveCount - 1;

            SpriteTransform tmpSprTransform = spriteTransforms[idx];

            if (tmpSprTransform.overrideSprite != null && tmpSprTransform.component != null)
            {
                OverrideSprite os = new OverrideSprite();

                os.pathHash = tmpSprTransform.component._fullPathHash;
                os.sprite = tmpSprTransform.overrideSprite;
                overrideList.Add(os);
            }


            tmpSprTransform.parent = null;
            tmpSprTransform.firstChild = null;
            tmpSprTransform.lastChild = null;
            tmpSprTransform.next = null;
            tmpSprTransform.prve = null;
            tmpSprTransform.component = null;
            tmpSprTransform.searchHash = 0;
            tmpSprTransform.overrideSprite = null;
            tmpSprTransform.sprite = null;

            //if (tmpSprTransform.primitive != null)
            //{
            //    tmpSprTransform.primitive.texture = null;
            //    tmpSprTransform.primitive.texId = 0;
            //}



            if (lastIdx != idx)
            {
                SpritePrimitive tmpPri = primitives[idx];
                
                spriteTransforms[idx] = spriteTransforms[lastIdx];
                spriteTransforms[idx].id = idx;
                primitives[idx] = primitives[lastIdx];
                
                tmpSprTransform.id = lastIdx;                

                spriteTransforms[lastIdx] = tmpSprTransform;
                primitives[lastIdx] = tmpPri;
            }


            activePrimitiveCount--;
            _activePrimitiveCount.value = activePrimitiveCount;

        }