public static Uni2DAnimationClip CreateAnimationClip(List <Texture2D> a_rTexturesList, string a_rAnimationClipName = null, string a_rAnimationClipPath = null) { // Create a new animation clip prefab GameObject oModel = new GameObject( ); Uni2DAnimationClip oAnimationClipModel = oModel.AddComponent <Uni2DAnimationClip>( ); // Path to save prefab string oPrefabPath; if (a_rTexturesList != null && a_rTexturesList.Count > 0) { // Sort by name IOrderedEnumerable <Texture2D> rOrderedTexturesEnumerable = a_rTexturesList.OrderBy(x => x.name); Texture2D rFirstTexture = rOrderedTexturesEnumerable.First( ); // Create frames foreach (Texture2D rTexture in rOrderedTexturesEnumerable) { Uni2DAnimationFrame oAnimationFrame = new Uni2DAnimationFrame( ); oAnimationFrame.textureContainer = new Texture2DContainer(rTexture, true); oAnimationClipModel.frames.Add(oAnimationFrame); } // Apply oAnimationClipModel.ApplySettings(Uni2DAnimationClip.AnimationClipRegeneration.RegenerateAnimationClipOnly); oPrefabPath = (a_rAnimationClipPath == null ? Uni2DEditorUtils.GetLocalAssetFolderPath(rFirstTexture) : a_rAnimationClipPath) + (a_rAnimationClipName == null ? ("AnimationClip_" + rFirstTexture.name) : a_rAnimationClipName) + ".prefab"; // Make prefab path unique oPrefabPath = AssetDatabase.GenerateUniqueAssetPath(oPrefabPath); } else { // Unique prefab path string oClipName = (a_rAnimationClipName == null ? mc_oAnimationClipDefaultName : a_rAnimationClipName); oPrefabPath = (a_rAnimationClipPath == null ? Uni2DEditorUtils.GenerateNewPrefabLocalPath(oClipName) : AssetDatabase.GenerateUniqueAssetPath(a_rAnimationClipPath + oClipName)); } // Save it as a prefab GameObject oPrefab = PrefabUtility.CreatePrefab(oPrefabPath, oModel); // Destroy model GameObject.DestroyImmediate(oModel); // Return prefab animation clip component return(oPrefab.GetComponent <Uni2DAnimationClip>( )); }
static void DoCreatePixelPerfectCameraAssetsMenu( ) { string oNewPrefabPath = Uni2DEditorUtils.GenerateNewPrefabLocalPath(mc_oPixelPerfectCameraDefaultName); GameObject oPrefabModel = new GameObject( ); oPrefabModel.AddComponent <Camera>( ); oPrefabModel.AddComponent <Uni2DPixelPerfectCamera>( ); PrefabUtility.CreatePrefab(oNewPrefabPath, oPrefabModel); GameObject.DestroyImmediate(oPrefabModel); }
static void DoCreateTextureAtlas() { // Get the selected path string oNewPrefabPath = Uni2DEditorUtils.GenerateNewPrefabLocalPath(mc_oTextureAtlasDefaultName); // Create model GameObject oPrefabModel = new GameObject(); oPrefabModel.AddComponent <Uni2DTextureAtlas>(); // Save it as a prefab PrefabUtility.CreatePrefab(oNewPrefabPath, oPrefabModel); // Destroy model GameObject.DestroyImmediate(oPrefabModel); }