Skip to content

Commit 60283a0

Browse files
committed
Fix asset clearing
1 parent 6944d1f commit 60283a0

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

Runtime/Scripts/MeshAnimationBaker.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)