/// <summary> /// Collects all textures intended for packing, /// as well as sprite frames, together into a /// standard form for processing. /// </summary> public override void Aggregate(PathFromGUIDDelegate guid2Path, LoadAssetDelegate load, GUIDFromPathDelegate path2Guid) { List<Texture2D> texList = new List<Texture2D>(); List<CSpriteFrame> frameList = new List<CSpriteFrame>(); for (int i = 0; i < textureAnimations.Length; ++i) { textureAnimations[i].Allocate(); // First try GUIDs: if (textureAnimations[i].frameGUIDs.Length >= textureAnimations[i].framePaths.Length) { for (int j = 0; j < textureAnimations[i].frameGUIDs.Length; ++j) { string path = guid2Path(textureAnimations[i].frameGUIDs[j]); texList.Add((Texture2D)load(path, typeof(Texture2D))); frameList.Add(textureAnimations[i].spriteFrames[j]); } // Make sure we always use GUIDs in the future: textureAnimations[i].framePaths = new string[0]; } else { textureAnimations[i].frameGUIDs = new string[textureAnimations[i].framePaths.Length]; textureAnimations[i].spriteFrames = new CSpriteFrame[textureAnimations[i].framePaths.Length]; for (int j = 0; j < textureAnimations[i].spriteFrames.Length; ++j) textureAnimations[i].spriteFrames[j] = new CSpriteFrame(); for (int j = 0; j < textureAnimations[i].framePaths.Length; ++j) { if (textureAnimations[i].framePaths[j].Length < 1) continue; // First get a GUID and save it: textureAnimations[i].frameGUIDs[j] = path2Guid(textureAnimations[i].framePaths[j]); texList.Add((Texture2D)load(textureAnimations[i].framePaths[j], typeof(Texture2D))); frameList.Add(textureAnimations[i].spriteFrames[j]); } } } // Get the static frame info: // First try GUID: if(staticTexGUID.Length > 1) { staticTexPath = guid2Path(staticTexGUID); } else // Else, populate the GUID: { staticTexGUID = path2Guid(staticTexPath); } texList.Add((Texture2D)load(staticTexPath, typeof(Texture2D))); frameList.Add(_ser_stat_frame_info); sourceTextures = texList.ToArray(); spriteFrames = frameList.ToArray(); }
// Collects all textures intended for packing, // as well as sprite frames, together into a // standard form for processing. public virtual void Aggregate(PathFromGUIDDelegate guid2Path, LoadAssetDelegate load, GUIDFromPathDelegate path2Guid) { ArrayList texList = new ArrayList(); ArrayList frameList = new ArrayList(); for (int i = 0; i < States.Length; ++i) { States[i].Allocate(); // First try GUIDs: if (States[i].frameGUIDs.Length >= States[i].framePaths.Length) { for (int j = 0; j < States[i].frameGUIDs.Length; ++j) { string path = guid2Path(States[i].frameGUIDs[j]); texList.Add(load(path, typeof(Texture2D))); frameList.Add(States[i].spriteFrames[j]); } // Make sure we always use GUIDs in the future: States[i].framePaths = new string[0]; } else { States[i].frameGUIDs = new string[States[i].framePaths.Length]; States[i].spriteFrames = new CSpriteFrame[States[i].framePaths.Length]; for (int j = 0; j < States[i].spriteFrames.Length; ++j) States[i].spriteFrames[j] = new CSpriteFrame(); for (int j = 0; j < States[i].framePaths.Length; ++j) { // First get a GUID and save it: States[i].frameGUIDs[j] = path2Guid(States[i].framePaths[j]); texList.Add(load(States[i].framePaths[j], typeof(Texture2D))); frameList.Add(States[i].spriteFrames[j]); } } } sourceTextures = (Texture2D[])texList.ToArray(typeof(Texture2D)); spriteFrames = (CSpriteFrame[])frameList.ToArray(typeof(CSpriteFrame)); }
// Collects all textures intended for packing, // as well as sprite frames, together into a // standard form for processing. // Receives a delegate reference to AssetDatabase.LoadAssetAtPath public abstract void Aggregate(PathFromGUIDDelegate guid2Path, LoadAssetDelegate load, GUIDFromPathDelegate path2Guid);