private static void ApplySettings(Uni2DAnimationClip[] a_rAnimationClips, AnimationClipRegeneration a_eRegenerate) { int iClipCount = a_rAnimationClips.Length; if (iClipCount == 1) { a_rAnimationClips[0].ApplySettings(a_eRegenerate); } else if (iClipCount > 1) { // Apply clip settings first, atlases will be generated only after // (Atlases can be shared accross clips, so prevent them to be uselessly regenerated several times) HashSet <Uni2DTextureAtlas> oAtlases = new HashSet <Uni2DTextureAtlas>( ); for (int iClipIndex = 0; iClipIndex < iClipCount; ++iClipIndex) { Uni2DAnimationClip rAnimationClip = a_rAnimationClips[iClipIndex]; Uni2DTextureAtlas rGlobalAtlas = rAnimationClip.globalAtlas; if (rGlobalAtlas != null) { // Add the atlas if not already added if (a_eRegenerate == AnimationClipRegeneration.RegenerateAll || (a_eRegenerate == AnimationClipRegeneration.RegenerateAlsoAtlasIfNeeded && (rGlobalAtlas.UnappliedSettings || rGlobalAtlas.Contains(rAnimationClip.GetAllFramesTextureGUIDs( )) == false))) { oAtlases.Add(rGlobalAtlas); } } else // Null => atlas per frame { for (int iFrameIndex = 0, iFrameCount = rAnimationClip.FrameCount; iFrameIndex < iFrameCount; ++iFrameIndex) { Uni2DAnimationFrame rFrame = rAnimationClip.frames[iFrameIndex]; Uni2DTextureAtlas rFrameAtlas = rFrame.atlas; if (rFrameAtlas != null && (a_eRegenerate == AnimationClipRegeneration.RegenerateAll || (a_eRegenerate == AnimationClipRegeneration.RegenerateAlsoAtlasIfNeeded && (rFrameAtlas.UnappliedSettings || rFrameAtlas.Contains(rFrame.textureContainer.GUID) == false)))) { oAtlases.Add(rFrameAtlas); } } } // Regenerate clips only rAnimationClip.ApplySettings(AnimationClipRegeneration.RegenerateAnimationClipOnly); } // Then, regenerate atlases foreach (Uni2DTextureAtlas rAtlas in oAtlases) { rAtlas.ApplySettings( ); } } }
private static void ApplySettings( Uni2DAnimationClip[ ] a_rAnimationClips, AnimationClipRegeneration a_eRegenerate ) { int iClipCount = a_rAnimationClips.Length; if( iClipCount == 1 ) { a_rAnimationClips[ 0 ].ApplySettings( a_eRegenerate ); } else if( iClipCount > 1 ) { // Apply clip settings first, atlases will be generated only after // (Atlases can be shared accross clips, so prevent them to be uselessly regenerated several times) HashSet<Uni2DTextureAtlas> oAtlases = new HashSet<Uni2DTextureAtlas>( ); for( int iClipIndex = 0; iClipIndex < iClipCount; ++iClipIndex ) { Uni2DAnimationClip rAnimationClip = a_rAnimationClips[ iClipIndex ]; Uni2DTextureAtlas rGlobalAtlas = rAnimationClip.globalAtlas; if( rGlobalAtlas != null ) { // Add the atlas if not already added if( a_eRegenerate == AnimationClipRegeneration.RegenerateAll || ( a_eRegenerate == AnimationClipRegeneration.RegenerateAlsoAtlasIfNeeded && ( rGlobalAtlas.UnappliedSettings || rGlobalAtlas.Contains( rAnimationClip.GetAllFramesTextureGUIDs( ) ) == false ) ) ) { oAtlases.Add( rGlobalAtlas ); } } else // Null => atlas per frame { for( int iFrameIndex = 0, iFrameCount = rAnimationClip.FrameCount; iFrameIndex < iFrameCount; ++iFrameIndex ) { Uni2DAnimationFrame rFrame = rAnimationClip.frames[ iFrameIndex ]; Uni2DTextureAtlas rFrameAtlas = rFrame.atlas; if( rFrameAtlas != null && ( a_eRegenerate == AnimationClipRegeneration.RegenerateAll || ( a_eRegenerate == AnimationClipRegeneration.RegenerateAlsoAtlasIfNeeded && ( rFrameAtlas.UnappliedSettings || rFrameAtlas.Contains( rFrame.textureContainer.GUID ) == false ) ) ) ) { oAtlases.Add( rFrameAtlas ); } } } // Regenerate clips only rAnimationClip.ApplySettings( AnimationClipRegeneration.RegenerateAnimationClipOnly ); } // Then, regenerate atlases foreach( Uni2DTextureAtlas rAtlas in oAtlases ) { rAtlas.ApplySettings( ); } } }
private void ApplySettings(AnimationClipRegeneration a_eRegenerate) { Uni2DAnimationClipInspector.ApplySettings(targets.Cast <Uni2DAnimationClip>( ).ToArray( ), a_eRegenerate); this.CheckClipsAndAtlasSynced( ); }
private void ApplySettings( AnimationClipRegeneration a_eRegenerate ) { Uni2DAnimationClipInspector.ApplySettings( targets.Cast<Uni2DAnimationClip>( ).ToArray( ), a_eRegenerate ); this.CheckClipsAndAtlasSynced( ); }