private void DrawParts(Rect rect) { GUILayout.BeginArea(rect); { EditorGUILayout.BeginVertical(); { EGUILayout.DrawBoxHeader("Part Data", EGUIStyles.BoxedHeaderCenterStyle, GUILayout.ExpandWidth(true)); if (currentCreatorData != null && partOutputDataDrawer != null) { partOutputDataDrawer.OnGUILayout(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Create Parts")) { AvatarSkeletonPartCreatorData partOutputData = currentCreatorData.skeletonPartData; foreach (var data in partOutputData.partDatas) { if (!CreatePart(data)) { break; } } } } } EditorGUILayout.EndVertical(); } GUILayout.EndArea(); }
private void DeleteCreatorData(AvatarCreatorData data) { string skeletonAssetPath = data.skeletonData.GetSkeletonPrefabPath(); if (AssetDatabase.LoadAssetAtPath <UnityObject>(skeletonAssetPath) != null) { AssetDatabase.DeleteAsset(skeletonAssetPath); } AvatarSkeletonPartCreatorData partOutputData = data.skeletonPartData; foreach (var partData in partOutputData.partDatas) { string partAssetPath = partData.GetPartAssetPath(partOutputData.outputFolder); AvatarPartData avatarPartData = AssetDatabase.LoadAssetAtPath <AvatarPartData>(partAssetPath); if (avatarPartData != null) { foreach (var avatarRendererPartData in avatarPartData.rendererParts) { if (avatarRendererPartData.mesh != null) { string meshAssetPath = AssetDatabase.GetAssetPath(avatarRendererPartData.mesh); if (Path.GetExtension(meshAssetPath).ToLower() == ".asset" && Path.GetFileNameWithoutExtension(meshAssetPath).EndsWith("_mesh")) { AssetDatabase.DeleteAsset(meshAssetPath); } } } AssetDatabase.DeleteAsset(partAssetPath); } } string assetPath = AssetDatabase.GetAssetPath(currentCreatorData); AssetDatabase.DeleteAsset(assetPath); }