示例#1
0
        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();
        }
示例#2
0
        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);
        }