@@ -28,6 +28,9 @@ public static void Clear([NotNull] MeshAnimationAsset asset)
2828 foreach ( var data in asset . extraMaterialData ) {
2929 DestroyObject ( ref data . material ) ;
3030 }
31+
32+ asset . extraMaterialData = new List < MeshAnimationAsset . ExtraMaterialData > ( ) ;
33+ asset . animationData = new List < MeshAnimationAsset . AnimationData > ( ) ;
3134
3235 SaveAsset ( asset ) ;
3336 }
@@ -79,15 +82,18 @@ private static void DestroyObject<T>(ref T field) where T : Object
7982
8083 private static void CreateMaterial ( MeshAnimationAsset asset )
8184 {
85+ var materialAssetName = asset . name + " Material" ;
86+
8287 if ( asset . bakedMaterial == null )
8388 {
84- var material = new Material ( asset . shader ) { name = asset . name + " Material" } ;
89+ var material = new Material ( asset . shader ) { name = materialAssetName } ;
8590 asset . bakedMaterial = material ;
8691 AssetDatabase . AddObjectToAsset ( material , asset ) ;
8792 }
8893 else
8994 {
9095 asset . bakedMaterial . shader = asset . shader ;
96+ asset . bakedMaterial . name = materialAssetName ;
9197 }
9298 }
9399
@@ -113,6 +119,20 @@ private static void CreateExtraMaterials(MeshAnimationAsset asset)
113119
114120 data . material . shader = asset . shader ;
115121 }
122+
123+ foreach ( var data in asset . extraMaterialData )
124+ {
125+ if ( asset . extraMaterials . Contains ( data . name ) )
126+ {
127+ continue ;
128+ }
129+
130+ Object . DestroyImmediate ( data . material , true ) ;
131+
132+ data . material = null ;
133+ }
134+
135+ asset . extraMaterialData . RemoveAll ( it => it . material == null ) ;
116136 }
117137
118138 private static void CreateTexture ( MeshAnimationAsset asset , out bool aborted )
0 commit comments