示例#1
0
文件: UISprite.cs 项目: coolape/mibao
    new void OnDisable()
    {
        base.OnDisable();

//		if (_grayMaterial != null) {
//			_grayMaterial.mainTexture = null;
//			GameObject.DestroyImmediate (_grayMaterial);
//			_grayMaterial = null;
//		}

        if (mAtlas != null)
        {
            if (mAtlas.isBorrowSpriteMode)
            {
                if (mSprite != null && !string.IsNullOrEmpty(mSprite.name))
                {
                    mAtlas.returnSpriteByname(mSprite.name);                                    // add by chenbin
                }
                mSprite = null;
            }
        }
    }
示例#2
0
 /// <summary>
 /// Returns the sprite byname.根据name释放sprite,add by chenbin
 /// </summary>
 /// <param name='name'>
 /// Name.
 /// </param>
 public void returnSpriteByname(string name)
 {
     if (mReplacement != null)
     {
         mReplacement.returnSpriteByname(name);
     }
     else
     {
         int i = spriteMap [name] == null ? -1 : (int)spriteMap [name];
         if (i < 0)
         {
             return;
         }
         //          Sprite s = sprites.Count > i ? sprites [i] : null;
         UISpriteData s = mSprites.Count > i ? mSprites [i] : null;
         if (s == null)
         {
             return;
         }
         int rc = retainCounter [s.path] == null ? 0 : (int)retainCounter [s.path];
         rc--;
                     #if UNITY_EDITOR
         if (Coolape.CLAssetsManager.self != null &&
             !string.IsNullOrEmpty(Coolape.CLAssetsManager.self.debugKey) &&
             s.path.Contains(Coolape.CLAssetsManager.self.debugKey))
         {
             Debug.LogError("returnSpriteByname====" + s.path + "===" + name + "=====" + rc);
         }
                     #endif
         retainCounter [s.path] = rc < 0 ? 0 : rc;
         if (rc <= 0)
         {
             s.lastReturnTime = System.DateTime.Now.AddSeconds(releaseSpriteTime).ToFileTime();
             if (s.material != null && !releaseTex.Contains(name))
             {
                 releaseTex.Enqueue(name);
                 ReleaseTexture();
             }
         }
     }
 }