private void DoPackSpritesFolder() { GUILayout.BeginVertical(SubGroupStyleName); ShowTitle("指定文件夹Pack Sprite"); CreateDropTextField("Sprites文件夹:", ref mInputPath); string[] tSpriteAssets = AssetDatabase.FindAssets("t:Sprite", new string[] { mInputPath }); if (tSpriteAssets != null && tSpriteAssets.Length > 0) { int tCnt = tSpriteAssets.Length; string btnLabel = string.Format("==Pack {0} Sprites==", tCnt); if (GUILayout.Button(btnLabel)) { if (string.IsNullOrEmpty(mOutputPath)) { ShowNotification(new GUIContent("请指定输出路径")); return; } if (string.IsNullOrEmpty(mPackName)) { ShowNotification(new GUIContent("请指定输出文件的名字")); return; } Sprite[] tSprites = new Sprite[tCnt]; int i = 0; foreach (string guid in tSpriteAssets) { string path = AssetDatabase.GUIDToAssetPath(guid); foreach (Object asset in AssetDatabase.LoadAllAssetsAtPath(path)) { Sprite sprite = asset as Sprite; if (sprite != null) { tSprites[i++] = sprite; } } } SimplePacker.Pack(tSprites, (int)mWidthType, (int)mHeightType, out mPackTextureAttrSet); WriteResult(mOutputPath, mPackName, mPackTextureFormat, ref mPackTextureAttrSet); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); //显示引用的图片 if (mPackTextureAttrSet != null) { mPackTexture = mPackTextureAttrSet.packTexture; } } } GUILayout.EndVertical(); }
private void DoPackSprites() { GUILayout.BeginVertical(SubGroupStyleName); ShowTitle("指定Pack Sprite"); CreateIntField("Sprite数目:", ref mSpriteCount); if (mSpriteCount <= 0) { mRawSprites = null; } else { if (mRawSprites == null || mRawSprites.Length != mSpriteCount) { Sprite[] tSprites = new Sprite[mSpriteCount]; for (int i = 0; i < mSpriteCount && mRawSprites != null && i < mRawSprites.Length; ++i) { tSprites[i] = mRawSprites[i]; } mRawSprites = tSprites; } } for (int i = 0; i < mSpriteCount; ++i) { GUILayout.BeginHorizontal(SubGroupStyleName); CreateSpriteField("Sprite:", ref mRawSprites[i]); GUILayout.EndHorizontal(); } string btnLabel = string.Format("==Pack {0} Sprites==", mSpriteCount); if (GUILayout.Button(btnLabel) && mSpriteCount > 0) { if (string.IsNullOrEmpty(mOutputPath)) { ShowNotification(new GUIContent("请指定输出路径")); return; } if (string.IsNullOrEmpty(mPackName)) { ShowNotification(new GUIContent("请指定输出文件的名字")); return; } SimplePacker.Pack(mRawSprites, (int)mWidthType, (int)mHeightType, out mPackTextureAttrSet); WriteResult(mOutputPath, mPackName, mPackTextureFormat, ref mPackTextureAttrSet); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); //显示引用的图片 mPackTexture = mPackTextureAttrSet.packTexture; } GUILayout.EndVertical(); }